允许您在查询中更紧凑地编写 CASE 运算符。
语法
multiIf(cond_1, then_1, cond_2, then_2, ..., else)
参数:
cond_N
— 函数返回的条件then_N
。then_N
— 函数执行时的结果。else
— 如果没有任何条件满足,则函数的结果。该函数接受2N+1
参数。
返回值该函数根据条件
返回其中一个值then_N
或。elsecond_N
示例
CREATE TABLE IF NOT EXISTS test.functionMultiIf (id UInt8, left Nullable(UInt8), right Nullable(UInt8)) ENGINE=CnchMergeTree ORDER BY id; INSERT INTO test.functionMultiIf VALUES (1,NULL,4),(2,1,3),(3,2,2),(4,3,1),(5,4,NULL); SELECTleft,right, multiIf(left < right, 'left is smaller', left > right, 'left is greater', left = right, 'Both equal', 'Null value') AS resultFROM test.functionMultiIf
┌─left─┬─right─┬─result──────────┐ │ ᴺᵁᴸᴸ │ 4 │ Null value │ │ 1 │ 3 │ left is smaller │ │ 2 │ 2 │ Both equal │ │ 3 │ 1 │ left is greater │ │ 4 │ ᴺᵁᴸᴸ │ Null value │ └──────┴───────┴─────────────────┘