Это меня озадачивает. У меня есть следующий запрос:WHERE is NULL clause return NON NULL Значения
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%'
Как и должно быть, он должен возвращать только строки, где END_DATE является NULL, но я получаю строки, имеющие дату в них.
Тип данных - DATE, а значение по умолчанию - (null), поэтому я не знаю, почему он возвращает некоторые строки с датами. У меня просто мозговой пердит? Это пятница, поэтому я приношу свои извинения, если мне не хватает чего-то простого.
Любая помощь была бы принята с благодарностью!
EDIT: Я довольно идиот. Я забыл свою скобку, код должен выглядеть следующим образом:
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND (LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%')
Вы можете быть заинтересованы в приоритете операций – Mihai
У вас есть или в списке фильтров. Думаю, вы хотели где-то использовать скобки. –
Подсказка: в чем разница между 1 + 1 * 8 и (1 + 1) * 8? – dfundako