SQL-запрос - ГДЕ с двумя условиями - PullRequest
1 голос
/ 14 марта 2019

Прямо сейчас у меня есть:

WHERE flag_1 NOT IN ("D") AND flag_2 NOT IN ("D")

У меня есть два набора людей, работающих над одними и теми же данными, и как только одна группа будет завершена, они "пометят" ее D, но отчет все равно будетнужно извлекать информацию до тех пор, пока ОБА не будут помечены D.

В настоящее время отчет исключает данные, если либо помечены D, но я толькохотите, чтобы это исключалось, когда оба аспекта завершены и помечены D.

Любое руководство?

Ответы [ 3 ]

5 голосов
/ 14 марта 2019

Я хочу исключить его только после завершения обоих аспектов и пометки "D".

Это будет означать:

WHERE NOT (flag_1 = 'D' AND flag_2 = 'D')

Примечание: я неНе вижу смысла для оператора IN с одним значением в списке, поэтому я изменил на простой =.

0 голосов
/ 14 марта 2019
WHERE flag_1 <> 'D' OR flag_2 <> 'D'

Если вы хотите, чтобы отчет продолжал извлекать записи до тех пор, пока оба флага не будут равны 'D', проверка флагов, которые не равны 'D', перетянет их в набор.

0 голосов
/ 14 марта 2019

Или вы можете перевести его на WHERE flag_1 <> 'D' AND flag_2 <> 'D'.Вы можете использовать условие SQL IN (иногда называемое оператором IN), если хотите легко проверить, соответствует ли выражение какому-либо значению в списке значений.В вашем случае у вас есть только одно значение для оценки.

NOT - отрицание, <> (not equal to) - оператор сравнения, оба они являются стандартом ISO.И не имеют разницы в производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...