Söka på efter poster mha kommaseparerad lista

Databaser & SQL

3 svar · 417 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Trådstart#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.

242 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
117 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)