跳到主要内容

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 |
    +---------+---------+