Вы можете попробовать то, что я сделал с: -
Создать функцию с именем Split_String
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
CREATE FUNCTION [dbo].[Split_String]
(
@MyString varchar(5000)
)
RETURNS @Results TABLE
(
Value varchar(1000)
)
AS
BEGIN
DECLARE @Pos int
DECLARE @StrLen int
DECLARE @MyLen int
DECLARE @MyVal varchar
SET @pos = 1
SET @MyLen = 1
WHILE @MyString <> ''
BEGIN
SET @MyLen = charindex(',',@MyString)
IF @MyLen = 0 SET @MyLen = Len(@MyString)
INSERT @Results SELECT replace(substring(@MyString, @pos, @MyLen),',','')
SET @MyString = SUBSTRING(@MyString,@MyLen+1,len(@MyString))
END
RETURN
END
Тогда, когда вы используете IN (), используйте следующую строку со строкой через запятую: -
SELECT * FROM [youDataBase].[dbo].[Split_String] (<@MyString, varchar(5000),>)