Перейти к содержимому
Последнее обновление

IF

Описание​

Если выражение <condition> истинно, возвращает <value_true>; в противном случае возвращает <value_false_or_null>. Тип возвращаемого значения: тип результата выражения <value_true>.

Синтаксис​

IF(<condition>, <value_true>, <value_false_or_null>)

Параметры​

  • <condition>: Выражение типа Boolean, определяющее, истинно ли условие.
  • <value_true>: Значение, возвращаемое, когда <condition> истинно.
  • <value_false_or_null>: Значение, возвращаемое, когда <condition> ложно или равно NULL.

Примеры​

  1. Подготовка данных

    create table test_if(
    user_id int
    ) properties('replication_num' = '1');
    insert into test_if values(1),(2),(null);
  2. Пример 1

    SELECT user_id, IF(user_id = 1, "true", "false") AS test_if FROM test_if;
    +---------+---------+
    | user_id | test_if |
    +---------+---------+
    | NULL | false |
    | 1 | true |
    | 2 | false |
    +---------+---------+
  3. Преобразование типов

    SELECT user_id, IF(user_id = 1, 2, 3.14) AS test_if FROM test_if;
    +---------+---------+
    | user_id | test_if |
    +---------+---------+
    | NULL | 3.14 |
    | 1 | 2.00 |
    | 2 | 3.14 |
    +---------+---------+

    Второй аргумент "2" преобразуется к типу третьего аргумента "3.14" (Decimal).

  4. Аргумент NULL

    SELECT user_id, IF(user_id = 1, 2, NULL) AS test_if FROM test_if;
    +---------+---------+
    | user_id | test_if |
    +---------+---------+
    | NULL | NULL |
    | 1 | 2 |
    | 2 | NULL |
    +---------+---------+