Это функция fn_split_string , которая разбивает строку:
ALTER function dbo.fn_split_string(@str nvarchar(1000),@sep nvarchar(1))
returns @tab_split table (id int identity(1,1),str nvarchar(1000) )
as
begin
declare @str1 as nvarchar(1000)
declare @istr as nvarchar(1000)
declare @i as integer
set @str1=@str
set @i=2
while @i>0
begin
set @i=charindex(@sep,@str1,1)
if @i>0
begin
set @istr=substring(@str1,1,@i-1)
insert into @tab_split(str) values(@istr)
set @str1=substring(@str1,@i+1,len(@str1))
end
end
insert into @tab_split(str) values(@str1)
return
end
И выполняет функцию следующим образом:
SELECT * FROM dbo.fn_split_string ('foo, bar',',');
Выходные данные:
1 foo
2 bar
Это может быть что-то вроде:
SELECT * FROM dbo.PDTM WHERE PDTM IN (SELECT str FROM dbo.fn_split_string(@param1,','))
Как уже указывалось, следующий шаг - передать список строк в ваш оператор SQL.
Надеюсь, это поможет вам.
С уважением,