数仓 SQL 函数对照

数仓 SQL 函数对照

MaxCompute、Hologres、StarRocks、Doris、Hive、Spark SQL 和 Flink SQL 的函数写法对照与迁移注意事项。

✓ 同名可用 · 别名 换个名字可用 · 改写 需要换函数或写法 · ✗ 没有对应函数

函数用途MaxComputeHologresStarRocksDorisHiveSpark SQLFlink SQL
条件、空值和类型转换
IF条件判断✓✓✓✓✓✓✓
NVL空值替换✓改写改写✓✓✓改写
日期
DATE_ADD日期加减✓改写✓✓✓✓改写
DATE_FORMAT日期格式化✓改写✓✓✓✓✓
DATEDIFF日期差✓✓✓✓✓✓改写
DATETRUNC日期截断✓改写改写改写改写改写改写
FROM_UNIXTIME时间戳转日期✓改写✓✓✓✓✓
TO_DATE字符串转日期✓✓改写改写改写✓✓
字符串
CONCAT字符串拼接✓✓✓✓✓✓✓
CONCAT_WS按分隔符拼接✓✓✓✓✓✓✓
SPLIT字符串拆分✓改写✓改写✓✓✓
SUBSTR截取子串✓改写✓✓✓✓✓
JSON
GET_JSON_OBJECT提取 JSON 字段✓✓✓改写✓✓改写
聚合
COLLECT_LIST聚合为数组✓改写改写✓✓✓改写
COLLECT_SET去重聚合为数组✓改写改写✓✓✓改写
WM_CONCAT分组拼接字符串✓改写改写改写改写改写改写
数组和 Map
EXPLODE数组展开为多行✓改写改写✓✓✓改写
分区
MAX_PT取最新分区✓✓✗✗✗✗✗