Я использовал небольшую функцию для разделения строки CSV в таблицу
Так я мог бы пойти
SELECT col1, col2
FROM myTable
WHERE myTable.ID IN (SELECT ID FROM dbo.SplitIDs('1,2,3,4,5...'))
Моя функция ниже:
CREATE FUNCTION [dbo].[SplitIDs]
(
@IDList varchar(500)
)
RETURNS
@ParsedList table
(
ID int
)
AS
BEGIN
DECLARE @ID varchar(10), @Pos int
SET @IDList = LTRIM(RTRIM(@IDList))+ ','
SET @Pos = CHARINDEX(',', @IDList, 1)
IF REPLACE(@IDList, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @ID = LTRIM(RTRIM(LEFT(@IDList, @Pos - 1)))
IF @ID <> ''
BEGIN
INSERT INTO @ParsedList (ID)
VALUES (CAST(@ID AS int)) --Use Appropriate conversion
END
SET @IDList = RIGHT(@IDList, LEN(@IDList) - @Pos)
SET @Pos = CHARINDEX(',', @IDList, 1)
END
END
RETURN
END
Я уверен, что есть лучшие способы реализовать это, это один из способов, который я нашел в Интернете, и он хорошо работает для того, что я делаю. Если есть какие-то улучшения, пожалуйста, прокомментируйте.