所以我一直在尝试研究一种方法,我可以拥有一个存储过程,它将对各种列执行动态搜索以过滤数据,但具有类似于 WHERE IN 的功能,即每列采用多个输入标准。
所以假设我有 3 列 FN、LN、DOB。我需要一个存储过程,它可以让我为三个变量的任意组合提供值,每列有多个值。
例如:未提供 FN IN ('ADAM', 'BRIAN') OR LN IN ('SMITH') OR DOB。
我试图遵循这个,
SELECT
FN,
LN
FROM TestData
WHERE
(CASE
WHEN @FN IS NULL THEN 'True'
ELSE FN
END) = (CASE
WHEN @FN IS NULL THEN 'True'
ELSE @FN
END)
AND (CASE
WHEN @LN IS NULL THEN 'True'
ELSE LN
END) = (CASE
WHEN @LN IS NULL THEN 'True'
ELSE @LN
END)
AND (CASE
WHEN @DOB IS NULL THEN '1/1/0001'
ELSE DOB
END) = (CASE
WHEN @DOB IS NULL THEN '1/1/0001'
ELSE @DOB
END)