sql - 嵌套where语句

标签 sql sql-server t-sql

有没有办法构造一个 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/

相关文章:

mysql - 如何在不删除索引的情况下将索引的 varchar(100) 更改为文本?

sql-server - 让 SQL 等待直到前一条语句完成

c# - SQL插入一行或多行数据?

sql-server - ADO 与 OLE DB 有什么关系?

SQL XML 如何查询特定节点

SQL Server : How to extract comments from stored procedures for deployment

sql - 绿色突出显示的 SQL 表名称表示什么?

sql - 排序错误

mysql - 间隔日期之间的查询

mysql - 即使另一个表中不存在记录,如何显示行?