TGViewer
Симулейтив Симулейтив @simulative_official · 7.45K subscribers
Post #2429 2.15K
ОШИБКА ФИЛЬТРАЦИИ В SQL 🔥

Одна из самых распространенных ошибок в SQL — неправильная фильтрация данных, если в столбце присутствуют значения NULL.

#️⃣Что за ошибка

Например, у нас в Симуляторе есть легкая задачка — отфильтровать всех пользователей, у которых поле company_id не равно 1. При этом в этом поле у многих записей стоит NULL.

Обычно студенты пишут такой запрос:

select *
from users
where company_id != 1


И вроде бы все логично, но если проверить внимательно, то мы увидим, что потерялось около 80% записей!

#️⃣Почему так происходит

Если мы обратимся к документации, то в описании оператора WHERE увидим:

Синтаксис оператора: WHERE «условие». «условие» — это любое выражение типа BOOLEAN. Всё, что не true, исключается из результата.


А теперь идем в документацию оператора != и видим:

Если один из элементов сравнения равен NULL, то возвращается NULL, а не true/false.


Таким образом, получается, что все строки с NULL выпадают из выборки, потому что такое сравнение возвращает NULL, а фильтр WHERE такие строки игнорирует.

#️⃣Как исправить
Исправить это можно, например, с помощью оператора COALESCE, который заменит NULL на другое число (например, -1, т.к. его гарантированно не будет в этом столбце):

select *
from users
where coalesce(company_id, -1) != 1


#️⃣ Заключение

Теперь вы на 100% знаете, почему эта ошибка возникает и как с ней бороться. Будьте внимательны — на больших данных обнаружить ее очень сложно, а она может привести к ужасным погрешностям при расчетах.

Наберем 50 реакций на этот пост? И мы разберем в таком формате еще другие ошибки, и не только в SQL🤓
  • 🔥 136
  • 👍 29
  • ❤ 11
More from @simulative_official
  1. Oct 18, 2026Уже сегодня разберёмся, зачем аналитику SQL SQL помогает получить из большой базы именно т…
  2. Oct 16, 2026❗️ Новая дата вебинара с Евгением Буториным Друзья, будем рады встретиться с вами 18 октяб…
  3. Oct 16, 2026Как работают консьюмеры в Kafka? Привет! На связи Валерия Елпатьевская, ментор курса «Инже…
  4. Oct 15, 2026Уже сегодня: расследование падения продаж интернет-магазина Сегодня в 19:00 МСК Вячеслав П…
  5. Oct 14, 2026Post #3620
  6. Oct 13, 2026💻💻💻💻💻 Падение продаж: как аналитик превращает размытый вопрос в расследование? Руково…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →