Условия в 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;

Комментарии •