Кажется, это должно быть просто, но я думаю, что я что-то упустил.
У меня есть запрос, в котором я выбираю несколько столбцов из моей БД, и я хочу исключить все строки, где (например) провинция = 'ontario' или 'quebec'. Я пробовал это разными способами, с разными результатами - ни один из которых не является тем, что я хочу.
select .... from fulldata
WHERE substr(code, 1, 5) <> '10000'
AND (province <> 'ontario' OR province <> 'quebec')
Это работает для исключения строк, где провинция является одним из этих значений, но также исключает все строки, гдепровинция пустая / пустая - понятия не имею.
Я пытался AND NOT ( stateprovince = 'ontario' OR stateprovince = 'quebec')
с тем же результатом.
Я пытался AND stateprovince <> ANY(VALUES 'ontario','quebec')
, и это не оказывает никакого влияния (все данные отображаютсяничего не отфильтровывается)
Даже если разбить его на что-то столь же простое, как AND stateprovince <> 'ontario'
, избавляется от данных ontario, но также избавляется от пробелов, что не является ожидаемым результатом.
В процессе написания этой статьи я нашел способ обойти этот запрос:
...
AND (stateprovince IS NULL OR stateprovince <> 'ontario')
AND (stateprovince IS NULL OR stateprovince <> 'quebec')
, который работает, но не кажется «правильным» способом. Есть идеи, что случилось?
Я использую Presto на Афине.