Найти тему
Властелин машин

Условные конструкции в SQL

Оглавление

Рассмотрим использование условных выражений в 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;
-2

if выражение

if в зависимости от условия возвращает один из результатов:

IF(условие, результат_1, результат_2)

Например, сформируем дополнительную колонку категории возраста в зависимости от даты рождения до или после "1960-01-01":

SELECT FirstName, LastName, BirthDate,
if (BirthDate < Date("1960-01-01"), 'older', 'younger') as category
FROM Employees
-3

Работа с null

ISNULL - проверяет является ли аргумент пустым.
IFNULL - возвращает первый аргумент, если он не null, в противном случае - второй аргумент.
COALESCE - выдает первое не null значение из списка.

Примеры:

SELECT ISNULL("string"), ISNULL('')
-4
SELECT IFNULL(NULL, "второй аргумент")
-5
SELECT COALESCE(NULL, NULL, "третий аргумент", "четвертый аргумент");
-6

-7