如何在HANA中通过查询将含“A,B”的单行拆分为两行(保留其他字段)
在HANA中拆分字符串列并保留其他字段的查询方案
假设你的表结构类似示例场景:
- 表名:
demo_table - 字段:
id(唯一标识)、target_col(需要拆分的列,值如"A, B")、other_col(其他需要保留的字段)
直接用以下查询即可实现需求,无需自定义函数,仅依赖HANA内置能力:
SELECT t.id, TRIM(s.split_value) AS target_col, t.other_col FROM demo_table t CROSS JOIN UNNEST(STRING_SPLIT(t.target_col, ', ')) AS s(split_value) WHERE t.target_col IS NOT NULL AND t.target_col != '';
关键逻辑说明:
STRING_SPLIT(t.target_col, ', '):将目标列的字符串按,(逗号加空格)分割为字符串数组;如果你的分隔符是单纯逗号(如"A,B"),把参数改成','即可UNNEST(...):把分割得到的数组展开成独立的行记录CROSS JOIN:将原表的每一行与拆分后的多行做关联,自动保留原表所有其他字段TRIM(...):清理拆分后值前后的多余空格,避免出现" A"这类带空格的结果
内容的提问来源于stack exchange,提问作者Cristina Biagiotti
相关产品推荐
相关产品推荐

