TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Симулейтив

18 Aug, 13:04

Открыть в Telegram Поделиться Пожаловаться

💻 Сценарии использования 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

534 0 8 2 11
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot