これは私がテーブルに私のカンマ区切りのリストを変換する機能を使用し、それに参加するはずの特殊な状況のいずれかです。
CREATE FUNCTION [dbo].[udf_ConvertStringArrayToTable] (
@StringArray VARCHAR(MAX)
)
RETURNS @StringTable TABLE
(
String VARCHAR(500)
)
AS
BEGIN
DECLARE @Index INT
SET @StringArray = LTRIM(RTRIM(@StringArray))
WHILE LEN(@StringArray) > 0
BEGIN
SET @Index = CHARINDEX(',', @StringArray, 1)
IF @Index = 0 BEGIN SET @Index = LEN(@StringArray) + 1 END
INSERT INTO @StringTable
SELECT SUBSTRING(@StringArray, 1, @Index - 1)
If @Index > LEN(@StringArray) BEGIN SET @StringArray = '' END
ELSE BEGIN SET @StringArray = SUBSTRING(@StringArray, @Index + 1, LEN(@StringArray) - @Index) END
END
RETURN
END
その後、あなたはこのようにそれを呼び出すことができます。
DECLARE @Example VARCHAR(MAX)
SET @Example = 'Orange,Apple,Banana,Kiwi,Strawberry,Blueberry' -- etc
SELECT
*
FROM
udf_ConvertStringArrayToTable(@Example) E
INNER JOIN T ON T.C LIKE '%' + E.String + '%'