如何知道WHERE语句中有多少条件符合其标准?
假设我们有以下 SQL 语句。
SELECT ID
FROM table1
WHERE P1 = P1 AND (P2 = X OR P3 = Y OR P4 = Z)
如果括号中的至少两个条件满足其条件,则此语句应返回结果,但我不知道如何编写给出这种结果的语句。先感谢您。
回答
CASE对返回1或0添加它们的每个条件使用表达式:
SELECT ID
FROM table1
WHERE P1 = P1
AND CASE WHEN P2 = X THEN 1 ELSE 0 END +
CASE WHEN P3 = Y THEN 1 ELSE 0 END +
CASE WHEN P4 = Z THEN 1 ELSE 0 END >= 2
这对于更多条件是可扩展的。