Рассмотрим использование условных выражений в SQL. Для примера будем использовать следующую таблицу:
case выражение
Case делает выбор на основании множества условий:
CASE
WHEN условие_1 THEN результат_1
WHEN условие_2 THEN результат_2
.................................
WHEN условие_N THEN результат_N
[ELSE альтернативный_результат]
END
Например, с его помощью можно скорректировать имена для лиц с фамилиями '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, "третий аргумент", "четвертый аргумент");