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.
1 svar · 251 visningar · startad av RiArvi
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?
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.