Функция nullif
Функция NULLIF: когда «равно» — это «ничего»
Функция NULLIF — штука простая, но полезная. Она сравнивает два выражения. Если они равны — возвращает NULL. Если нет — первое выражение как есть.
Зачем это нужно? Допустим, у вас есть таблица проектов. И для проекта с кодом 'p1' нужно скрыть название, показав NULL. Вот так:
SELECT NULLIF(projectName, 'p1') FROM projects
Если projectName окажется равен 'p1' — получите NULL. Для всех остальных проектов — нормальное название.
Ещё пара примеров из жизни
- Скидки: у вас есть цена и скидка. Если скидка равна цене — товар бесплатный.
NULLIF(price, discount)вернёт NULL, если скидка = цена. Удобно для анализа. - Даты: колонка с датой завершения. Если дата равна '9999-12-31' (условный «бесконечный» дедлайн) — хотим NULL.
NULLIF(end_date, '9999-12-31')— и готово.
Где может пригодиться на практике
- В отчётах — чтобы не показывать дублирующиеся или «пустые» значения.
- В агрегатах — чтобы NULL не учитывался в AVG, SUM и прочих.
- При миграции данных — когда нужно заменить определённые значения на NULL.
Просто и без лишней магии. Пробуйте.
Что еще посмотреть по SQL Server
Как кешировать в SQL результаты сложных операций
Как искать зависимости объектов в SQL Server
SQL Server. Как вызвать процедуру с переменным именем и результаты вставить в таблицу
Формирование сложного JSON объекта через SELECT в SQL Server
Как вставить данные в таблицу БД из таблицы на другом сервере
Использование CPU в SQL Server Express Edition
Как форматировать код sql в sql server management studio
Чем отличается For JSON Auto от For JSON Path
Дополнительный заработок для разработчиков на T-SQL
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта