Hej! Finns det någon som vet hur man ska göra, om det överhuvudtaget går, för att ersätta ett kolumnnamn med en variabel innehållande kolumnnamnet? Nej, det kan du inte, åtminstone inte utan dynamisk SQL. Varför ska du göra det? Det är inte hur det är tänkt att man ska arbeta med SQL. Om du tvunget måste göra det med dynamisk SQL kan du skriva så här.Använda en variabel innehållande kolumnnamnet
Jag menar något i denna stilen:
<code>
use Northwind
declare @var varchar(30)
set @var = 'CustomerID'
select OrderID
from Orders
where @var = 'VINET'
</code>Sv: Använda en variabel innehållande kolumnnamnet
use Northwind
declare @var varchar(30)
set @var = 'CustomerID'
declare @sql varchar(8000)
set @sql = 'select OrderID
from Orders
where ' + @var + ' = ''VINET'''
Om det bara är för att du vill att man ska kunna söka i olika kolumner (t ex CustomerID och ShipCity) så kan du istället skriva så här:
select OrderID
from Orders
where CustomerID = 'VINET'
or ShipCity = 'VINET'
eller t o m så här:
select OrderID
from Orders
where 'VINET' in (CustomerID, ShipCity)