SQL: могу ли я использовать ноль в OR - PullRequest
0 голосов
/ 27 февраля 2019

Могу ли я использовать оператор NULL в ИЛИ, как это?

SELECT * FROM Table WHERE Status='0' OR Status='3' OR Status IS NULL

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

Я бы рекомендовал использовать IN для всех, кроме значения NULL:

SELECT *
FROM Table
WHERE Status IN (0, 3) OR Status IS NULL;

Как указывает Зайнул, не используйте одинарные кавычки для числовых констант.Используйте только одинарные кавычки для констант строки и даты.

0 голосов
/ 27 февраля 2019

Альтернативный способ - предположить, что 0 является значением по умолчанию для нулевых статусов, и использовать:

SELECT * FROM Table WHERE COALESCE(Status, 0) IN (0, 3)

0 голосов
/ 27 февраля 2019

для целочисленных значений нет необходимости в одинарных кавычках и да, вы можете отфильтровать все три или более

 SELECT * FROM Table 
 WHERE Status=0 OR Status=3 OR Status IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...