Последнее обновление
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.
Примеры
-
Подготовка данных
create table test_if(
user_id int
) properties('replication_num' = '1');
insert into test_if values(1),(2),(null); -
Пример 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 |
+---------+---------+ -
Преобразование типов
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).
-
Аргумент 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 |
+---------+---------+