Jeg er selvfølgelig enig med arne_v, men en høker-løsning kunne være denne funktion:
CREATE FUNCTION idliste(@idliste nvarchar(4000)) RETURNS @idtabel TABLE (id int) AS BEGIN
DECLARE @s nvarchar(4000) DECLARE @start int DECLARE @komma int DECLARE @id int SET @start = 1
SET @s = @idliste + ','
SET @komma = CHARINDEX(',', @s, @start) WHILE @komma > 0 BEGIN SET @id = CONVERT(int, LTRIM(RTRIM(SUBSTRING(@s, @start, @komma - @start )))) INSERT INTO @idtabel VALUES(@id) SET @start = @komma + 1 SET @komma = CHARINDEX(',', @s, @start) END
RETURN END GO
Nu kan du fx sige:
SELECT * FROM tabel WHERE id IN (SELECT id FROM idliste('1,2,56,126'))
Det er klart at performance ikke vil være imponerende. Og funktionen er ikke særlig robust over for 'syntaksfejl' i id-listen. Men du kan jo selv vurdere om det er noget for dig.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.