webForumDet fria alternativet

Använda variabel med komma-separerade värden i select...from...where ProdID IN

Databaser & SQL

1 svar · 251 visningar · startad av RiArvi

Medlem sedan maj 20015 inlägg
Frågan#1

Hej!

Vill kunna begränsa ett urval i en select-sats, genom att använda en variabel med komma-separerade värden i en WHERE...IN-sats.

Eftersom jag skall använda den i en DECLARE ... CURSOR - sats i en User Defined Function, så är jag lite begränsad. Vad jag vet måste jag använda en "ren" SQL-sats, och kan inte bygga en sträng med SELECT-satsen för att sedan köra den.

Detta exempel kör jag i Query Analyzer och jag tror att den visar mitt problem, där jag vill få fram två träffar med hjälp av att använda en variabel i WHERE...IN-satsen:

DECLARE @iList nvarchar(20) --Deklarera värdet
SET @iList='''TEST2'',''V00055''' --Sätter värdet

SELECT @iList --Felsökningsinfo - Visa värdet i @iList

--Använder jag vanligt text så fungerar det
SELECT ProdID
FROM tProd
WHERE ProdID In ('TEST2','V00055')

--Om jag försöker använda variabel fungerar det inte
SELECT ProdID
FROM tProd
WHERE ProdID In (@iList)

Någon som har något tips?

Medlem sedan dec. 200012 464 inlägg
#2

Måste du ha en cursor (otyg)? I de flesta fall går det att skriva frågan direkt i SQL utan att loopa.

Annars så kan du lagra värdena i en temptabell och joina mot den.

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)