Несколько условий WHERE в одном операторе SQL - PullRequest
0 голосов
/ 04 июля 2019

У меня проблемы с использованием многих WHERE условий, поскольку мне нужно объединить 8 Where условий в одном выражении.

Мой текущий SQL:

SELECT * 
FROM Table 
WHERE ID = ?

Я хочу что-то вот так:

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

Как мне этого добиться?Я застрял.

Ответы [ 2 ]

2 голосов
/ 04 июля 2019

Вы не можете иметь несколько WHERE на одном уровне SQL-запроса.Вам нужно использовать 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"
0 голосов
/ 04 июля 2019

Нам не разрешено использовать условие множественного числа в одном выражении. Для этого вам нужно подойти с помощью и. Например:

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

Это будет прекрасно работать.

...