Условные конструкции в SQL
Рассмотрим использование условных выражений в SQL. Для примера будем использовать следующую таблицу:
case выражение
Case делает выбор на основании множества условий:
WHEN
условие_1 THEN
результат_1
WHEN
условие_2 THEN
результат_2
.................................
WHEN
условие_N THEN
результат_N
[ELSE
альтернативный_результат]
Например, с его помощью можно скорректировать имена для лиц с фамилиями 'Davolio' и 'Fuller' (выводятся в новой колонке NewFirstName):
SELECT LastName, FirstName, case when LastName='Davolio' then 'Jenny' when LastName='Fuller' then 'Henry' else FirstName end as NewFirstName FROM Employees;
if выражение
if в зависимости от условия возвращает один из результатов:
IF(условие, результат_1, результат_2)
Например, сформируем дополнительную колонку категории возраста в зависимости от даты рождения до или после "1960-01-01":
SELECT FirstName, LastName, BirthDate, if (BirthDate < Date("1960-01-01"), 'older', 'younger') as category FROM Employees
Работа с null
ISNULL
- проверяет является ли аргумент пустым.
IFNULL
- возвращает первый аргумент, если он не null, в противном случае - второй аргумент.
COALESCE
- выдает первое не null значение из списка.
SELECT ISNULL("string"), ISNULL('')
SELECT IFNULL(NULL, "второй аргумент")
SELECT COALESCE(NULL, NULL, "третий аргумент", "четвертый аргумент");