数仓 SQL 函数对照
MaxCompute、Hologres、StarRocks、Doris、Hive、Spark SQL 和 Flink SQL 的函数写法对照与迁移注意事项。
✓ 同名可用 · 别名 换个名字可用 · 改写 需要换函数或写法 · ✗ 没有对应函数
| 函数 | 用途 | MaxCompute | Hologres | StarRocks | Doris | Hive | Spark SQL | Flink 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 | 取最新分区 | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |