一条 SQL 语句中存在多个 WHERE 条件

Com*_* v2 2 sql conditional-statements

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

我当前的SQL:

SELECT * 
FROM Table 
WHERE ID = ?
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

SELECT * 
FROM Table 
WHERE ID = ?, WHERE COL2 = ?, WHERE COL3 = ?, ... WHERE COL8 = ?
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?我被困住了。

Luk*_*zda 10

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

SELECT * FROM Table 
WHERE ID = ? 
  AND COL2 = ? 
  AND COL3 = ?
  -- ... 
  AND COL8 = ?
Run Code Online (Sandbox Code Playgroud)

或使用嵌套:

SELECT *
FROM (SELECT *
      FROM Table
      WHERE ID = ?) s
WHERE COL1 = ?
...
Run Code Online (Sandbox Code Playgroud)

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

 Tab
 | where col = ?
 | where col2 = ?
Run Code Online (Sandbox Code Playgroud)

样本:

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

t1 
| where key in (1,2)
| where value == "b"
Run Code Online (Sandbox Code Playgroud)