TGViewer
Симулейтив Симулейтив @simulative_official · 7.47K subscribers
Post #3521 733
💻 Сценарии использования NULLIF

Вас когда-нибудь спрашивали на собеседовании о функции NULLIF?

В гайдах к собеседованиям куда чаще встречаются джоины и первичный ключ, а NULLIF опускают. Хотя зря! NULLIF на самом деле — мощный инструмент, который можно использовать в разных ситуациях, чтобы повысить надежность ваших запросов. 

✅ Что такое NULLIF и как это использовать?

NULLIF — это функция, которая принимает два аргумента и возвращает NULL, если аргументы равны, в противном случае она возвращает первый аргумент. Синтаксис выглядит следующим образом:

NULLIF(выражение 1, выражение 2)


💻 Деление на ноль

Пожалуй, самое полезное, что можно сделать, используя NULLIF — пресечь ошибку деления на ноль.

Это один из самых распространённых вариантов использования. Например, если вы пытаетесь поделить один столбец на другой, и есть вероятность, что во втором столбце (делителе) могут оказаться нули — оберните второй столбец в NULLIF и вы не получите ошибок.

SELECT column1/NULLIF(column2, 0)
FROM table1


То есть когда значение второго столбца равно 0 (аргументы в NULLIF равны), вернется NULL, а не ZeroDivisionError.

💻 Поиск среднего значения

Такая схема будет полезна и при других вычислениях, например среднего значения. Опять же, если есть шанс, что в столбце, по которому считаем среднее, могут оказаться нули, которые не должны влиять на результат — поможет NULLIF.

Например, дана такая таблица:

| column1 | column2 |
|---------|---------|
| 0       | a       |
| 7       | a       |


Выполнив:

SELECT column2, AVG(column1)
FROM table1
GROUP BY column2;


Получим:

| column2 | avg |
|---------|-----|
| a       | 3.5 |


А с использованием NULLIF получим другой результат:

SELECT column2, AVG(NULLIF(column1, 0))
FROM table1
GROUP BY column2;


| column2 | avg |
|---------|-----|
| a       | 7   |


💻 Преобразование пустых строк

Другой вариант использования NULLIF — преобразование пустых строк в NULL. Например, в таблице некоторые столбцы содержат пустые строки, которые необходимо трактовать как NULL — идеально подходящая ситуация для NULLIF:

SELECT NULLIF(column1, '') FROM table1;


Получим NULL, если столбец 1 содержит пустую строку, что эффективно обработает все пустые строки.

💡 В следующий раз, когда вы будете работать над проектом, попробуйте найти, где бы вы могли использовать NULLIF и убедитесь, как он легко поможет решать сложные задачи и избегать больших CASE/WHEN конструкций. Кстати говоря, NULLIF — это тот же CASE/WHEN, так что, возможно, стоит провести ревизию старых проектов и увидеть потенциальные «use» кейсы.


Если вы и раньше использовали NULLIF, расскажите, в каких интересных задачах он вам пригодился? И ставьте 🔥, если было полезно!

📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS
  • 👍 5
  • 🔥 4
  • ❤ 3
More from @simulative_official
  1. Sep 25, 2026⚡️ Через 10 минут начинаем! Валерия Елпатьевская уже на месте. Показываем, как собрать ETL…
  2. Sep 25, 2026Сегодня собираем ETL-пайплайн на данных GitHub — от источника до дашборда Сегодня в 19:00…
  3. Sep 24, 2026💻💻💻💻💻 Собираем ETL-пайплайн на данных GitHub Как данные проходят путь от внешнего сер…
  4. Sep 24, 2026Post #3582
  5. Sep 23, 2026Что происходит между вопросом бизнеса и готовым дашбордом? Сегодня в 19:00 покажем этот пу…
  6. Sep 21, 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 →