有没有办法构造一个 WHERE 语句来像这个伪代码一样工作?有点像嵌套的 WHERE 语句?
SELECT
t.Val1
,t.Val2
,t.Val3
,t.Val4
,t.Val5
FROM table t
WHERE
IF t.Val1 = 'ABC'
THEN WHERE t.Val2 = t.Val3
ELSE
WHERE t.Val4 = t.Val5
使用 MS SQL Server
最佳答案
只需使用 bool 逻辑:
WHERE (t.Val1 = 'ABC' AND t.Val2 = t.Val3) OR
(t.Val1 <> 'ABC' AND t.Val4 = t.Val5)
此公式假设 val1
永远不会 NULL
- 如果需要,NULL
值很容易处理。
关于sql - 嵌套where语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66324897/