CASE
Синтаксис
Как блок
Как функция
CASE expression
WHEN value_1 THEN result_1
[ WHEN value_2 THEN result_2
... ]
ELSE default_result
END
CASE(
expression,
value_1, result_1,
[ value_2, result_2,
... ]
default_result
)
Описание
Сравнивает выражение expression
с последовательностью значений value_1
, value_2
, ... и возвращает результат для первого совпадения.
Если совпадений не найдено, то возвращает default_result
.
Типы аргументов:
expression
—Любой
value_1
—Любой
result_1
—Любой
value_2
—Любой
result_2
—Любой
default_result
—Любой
Возвращаемый тип: Совпадает с типом аргументов (result_1
, result_2
, default_result
)
Примечание
Тип аргументов (result_1
, result_2
, default_result
) должен совпадать.
Примеры
CASE (
[country],
"AO", "Angola",
"AU", "Australia",
"BY", "Belarus",
"CA", "Canada",
"TT", "Trinidad and Tobago",
"Other Country"
)
CASE [country]
WHEN "AO" THEN "Angola"
WHEN "AU" THEN "Australia"
WHEN "BY" THEN "Belarus"
WHEN "CA" THEN "Canada"
WHEN "TT" THEN "Trinidad and Tobago"
ELSE "Other Country"
END
Пример с таблицей данных
Формулы:
- unit:
[unit]
; - case_function:
CASE([unit], "s", 1, "m", 60, "h", 3600, 0)
; - case_statement:
CASE [unit] WHEN "s" THEN 1 WHEN "m" THEN 60 WHEN "h" THEN 3600 ELSE 0 END
.
unit | case_function | case_statement |
---|---|---|
's' |
1 |
1 |
'm' |
60 |
60 |
'h' |
3600 |
3600 |
Поддержка источников данных
ClickHouse 21.8
, Microsoft SQL Server 2017 (14.0)
, MySQL 5.7
, Oracle Database 12c (12.1)
, PostgreSQL 9.3
, YDB
.