一条SQL语句中有多个WHERE条件

时间:2019-07-04 20:08:44

标签: sql conditional-statements

我在使用许多WHERE条件时遇到了麻烦,因为我确实需要在单个语句中组合 8 Where个条件。

我当前的SQL:

SELECT * 
FROM Table 
WHERE ID = ?

我想要这样的东西:

SELECT * 
FROM Table 
WHERE ID = ?, WHERE COL2 = ?, WHERE COL3 = ?, ... WHERE COL8 = ?

我该如何实现?我被卡住了。

2 个答案:

答案 0 :(得分:2)

在同一SQL查询级别上不能有多个WHERE。您需要使用AND

SELECT * FROM Table 
WHERE ID = ? 
  AND COL2 = ? 
  AND COL3 = ?
  -- ... 
  AND COL8 = ?

或使用嵌套:

SELECT *
FROM (SELECT *
      FROM Table
      WHERE ID = ?) s
WHERE COL1 = ?
...

这实际上是一个有趣的问题。例如KQL(Kusto查询语言)允许链接多个WHERE

 Tab
 | where col = ?
 | where col2 = ?

示例:

let t1 = datatable(key:long, value:string)  
[1, "a",  
2, "b",
3, "c"];

t1 
| where key in (1,2)
| where value == "b"

答案 1 :(得分:0)

我们不允许在同一条语句中使用倍数where条件。为此,您需要使用和进行处理。 例如:

SELECT * FROM Table 
where col='a' and col2='c' and col'3' 

这将很好地工作。