TGViewer
Симулейтив Симулейтив @simulative_official · 7.46K subscribers
Post #2931 1.54K
💻 Ошибка фильтрации в 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% знаете, почему эта ошибка возникает и как с ней бороться. Будьте внимательны — на больших данных обнаружить её очень сложно, а она может привести к ужасным погрешностям при расчётах.

Ставьте 🔥, если полезно!

📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS
  • 🔥 46
  • 👍 6
  • ❤ 4
More from @simulative_official
  1. Oct 1, 2026Post #3592
  2. Sep 30, 2026💻💻💻💻💻 Откуда на самом деле берутся данные? На учебных задачах всё просто: тебе дают г…
  3. Sep 30, 2026⭐️ Топ метрик, которые должен уметь считать каждый аналитик Рекламные метрики — это не про…
  4. Sep 29, 2026⭐️ Уже сегодня: как ML-инженер учит компьютер находить смысл в тексте Сегодня покажем проф…
  5. Sep 28, 2026#проанализировали_и_поняли
  6. Sep 27, 2026💻💻💻💻💻 Как работает ML-инженер — на примере поиска похожих текстов Пользователь вводит…
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 →