webForumDet fria alternativet

Söka på efter poster mha kommaseparerad lista

Databaser & SQL

3 svar · 401 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Hej,

Man ska kunna göra enligt följande

SELECT * FROM Tabell
WHERE KolumnId IN (12,13,17,19,20)

KolumnId är av typen heltal. Det funkar att skicka in en kommaseparerad lista bestående av nvarchar men då finns en begränsning på 4000 tecken. Text funkar inte. Finns det någon bra lösning på detta?

Databasen är MS SQL 2008

Medlem sedan dec. 20025 483 inlägg
#2

Är det en SP vars definition du inte har kontroll över? Om inte så är det ju bara att byta nvarchar(4000) mot nvarchar(max).

Medlem sedan juli 20041 183 inlägg
#3

Jodå jag har kontroll över den. Men nvarchar(max) är väl detsamma som nvarchar(4000)??

Medlem sedan juli 20041 183 inlägg
#4

Hmm, nej den var ju lite längre.

Jag har ett till problem. I databasen är kolumnen int och kommaseparerade listan jag skickar in är nvarchar(max). Jag måste på något sätt få

WHERE kolumnNamn IN ('32,33,34')

att bli

WHERE kolumnNamn IN (32,33,34)

då kolumnNamn är av typen int. 32, 33 och 34 skickas in mha en nvarchar(max) parameter.

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)