Организация ветвлений (case) в SQL
Для организации ветвлений в SQL-92 включен оператор CASE, который может использоваться там, где допускается ссылка на столбец. Предусмотрено две варианта его реализации.
1 Вариант
CASE {WHEN <условие> THEN <выр1>|NULL} [ELSE <выр2>|NULL]
2 Вариант
CASE <выр> {WHEN <значение> THEN <выр1>|NULL} [ELSE <выр2>|NULL]
Примеры на организацию ветвлений:
SELECT ODate, SUM(Amt) FROM Orders WHERE Amt=CASE WHEN Amt IS NULL THEN 0 ELSE (SELECT Amt FROM Orders WHERE CNum<>2001)
SELECT CName, CASE WHEN City=’London’ THEN ‘England’ WHEN City=’Rome’ THEN ‘Italy’ ELSE ‘Other’ FROM Orders
SELECT CName, CASE City WHEN ’London’ THEN ‘England’ WHEN ‘Rome’ THEN ‘Italy’ ELSE ‘Other’ FROM Orders