COALESCE
描述
返回参数列表中从左到右第一个非空表达式。如果所有参数都为 NULL,则返回 NULL。
语法
COALESCE( <expr1> [ , ... , <exprN> ] )
参数
必须参数
<expr1>
任意类型的表达式。
可变参数
COALESCE
函数支持多个可变参数。
返回值
参数列表中第一个非空表达式。如果所有参数都为 NULL,则返回 NULL。
使用说明
- 多个参数的类型应该尽量统一。
- 如果多个参数的类型不一致,会尝试转换为同一类型,转换规则参考:类型转换
- 目前参数仅支持部分类型:
- 字符串类型(String/VARCHAR/CHAR)
- 布尔类型(Boolean)
- 数字类型(TinyInt、SmallInt、Int、BigInt、LargeInt、Float、Double、Decimal)
- 日期类型(Date、DataTime)
- 位图类型(Bitmap)
- 半结构化类型(JSON、Array、MAP、Struct)
示例
-
参数类型转换
select coalesce(null, 2, 1.234);
+--------------------------+
| coalesce(null, 2, 1.234) |
+--------------------------+
| 2.000 |
+--------------------------+因为第三个参数 "1.234" 是 Deciaml 类型, 参数 "2" 被转换为了 Decimal 类型。
-
所有参数都是 NULL
select coalesce(null, null, null);
+----------------------------+
| coalesce(null, null, null) |
+----------------------------+
| NULL |
+----------------------------+