Условия в SQL и условные SQL запросы CASE, WHEN, THEN, ELSE , END в базах данных SQLite
HTML-код
- Опубликовано: 5 апр 2017
- Помощь проекту:
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Рубрика SQLite на сайте: zametkinapolyah...
Паблик блога в ВК: zametki...
Тематическая группа в ВК: zametki_bd
-- Условные выражения CASE, WHEN, THEN, ELSE, END в SQL
/*
Условные выражения, состоящие из CASE, WHEN, THEN и ELSE
полезны в тех случаях, когда нужно осуществить ряд проверок и
получить конечный результат в зависимости от исхода этих
проверок. По сути, CASE является SQL оператором, а ключевые
слова WHEN и THEN позволяют задавать несколько условия для
проверки, теоретически количество этих условий может быть
бесконечным.
Выражение с оператором CASE имеют две формы записи, но в
любом случае условное выражение в SQL завершается ключевым
словом END.
*/
-- 1 вариант
CASE
WHEN первое условие
THEN первое возвращаемое значение
WHEN второе условие
THEN второе возвращаемое значение
…
WHEN энное условие
THEN энное возвращаемое значение
[ELSE возвращаемое значение, если условие не будет выполнено]
END
-- 2 вариант
CASE первое значение, которое хотим проверить
WHEN первое значение, с которым сравниваем
THEN первое значение, которое возвращаем
WHEN второе значение, с которым сравниваем
THEN второе значение, которое возвращаем
…
WHEN энное значение, с которым сравниваем
THEN энное значение, которое возвращаем
[ELSE возвращаемое значение, если условие не будет выполнено]
END
-- Для начала рассмотрим два простых примера
CREATE TABLE booltable (a,b);
INSERT INTO booltable VALUES (1,0);
SELECT * FROM booltable;
-- 1 вариант выражения CASE в SQL
SELECT
CASE WHEN a==1 THEN 'true' ELSE 'false' END as typeColA,
CASE WHEN b THEN 'true' ELSE 'false' END as typeColB
FROM booltable;
-- 2 вариант выражения CASE в SQL
SELECT
CASE a WHEN 1 THEN 'true' ELSE 'false' END AS boolA,
CASE b WHEN 1 THEN 'true' ELSE 'false' END AS boolB
FROM booltable;