我有一个表值参数(@KEYWORD),它只有一列,其中包含 0 到多行关键字,这些关键字将针对一两个数据库 (nvarchar) 列(REMARKS 和 SUPPLEMENTAL_REMARKS)进行查询。超级简单的概念。
我遇到的问题是如何编写 SQL 来检查针对一个(或两个)数据库列提供的每个单独的关键字。
这是我未完成的 WHERE 子句部分......
WHERE
(
CASE WHEN EXISTS (SELECT 1 FROM @KEYWORD) THEN
--check that some combination of either REMARKS or SUPPLEMENTAL_REMARKS contains all supplied values
CASE WHEN (
-- RES.REMARKS (or RES.SUPPLEMENTAL_REMARKS) LIKE %keyword[0]%
-- AND
-- RES.REMARKS (or RES.SUPPLEMENTAL_REMARKS) LIKE %keyword[1]%
-- AND
-- ... (this doesn't work for many reasons, but is just to give an idea)
) THEN
1
ELSE
0
END
ELSE --TVP (@KEYWORD) not supplied, so ignore this filter
1
END
) = 1