Обработка значений NULL в SQL-вычислениях критична, чтобы избежать неожиданных результатов. Существует два основных подхода: использование встроенных функций или использование выражения CASE.
COALESCE — это функция стандарта ANSI, которая возвращает первое ненулевое значение из списка аргументов. ISNULL — это альтернатива, специфичная для SQL Server, которая принимает ровно два аргумента.
Используй их, когда нужно заменить NULL на значение по умолчанию:
SELECT name, COALESCE(salary, 0) AS salary
FROM employees;
COALESCE предпочтительнее для переносимости между разными СУБДISNULL немного лаконичнее, но ограничен SQL ServerВыражение CASE обеспечивает большую гибкость и полезно, когда нужна дополнительная условная логика помимо простой замены NULL:
SELECT name,
CASE WHEN salary IS NULL THEN 0 ELSE salary END AS salary
FROM employees;
IS NULL или IS NOT NULL для фильтрации значений NULL в условиях WHERE, так как сравнение через = NULL работает не так, как ожидаетсяФункция COALESCE предпочтительнее ISNULL в первую очередь потому, что она принимает несколько аргументов и обеспечивает лучшую совместимость между разными системами управления базами данных.
Новый — ещё не проверен сообществом
Вы