SAP HANA列值拆分为多行

title: 场景
ODS.MESSAGE的NAME字段是由多个字符拼接而成,间隔符为"、"

参考:[blogs.sap.com](https://blogs.sap.com/2019/05/14/split-table-column-value-into-multiple-rows-using-sql-in-sap-hana/)
NAME
a、b、c
d、e
DO
BEGIN
	DECLARE MAX_OCCURRENCES_COUNT INT;

	SELECT
		MAX(OCCURRENCES_REGEXPR('、' IN NAME) + 1)
	INTO
		MAX_OCCURRENCES_COUNT
	FROM
		ODS.MESSAGE;

	SELECT DISTINCT
		SUBSTR_REGEXPR('[^、]+' IN NAME OCCURRENCE SERIES."ELEMENT_NUMBER") AS NAME
	FROM
		ODS.MESSAGE
		CROSS JOIN SERIES_GENERATE_INTEGER(1,0, :MAX_OCCURRENCES_COUNT) SERIES
	WHERE
		SUBSTR_REGEXPR('[^、]+' IN NAME OCCURRENCE SERIES."ELEMENT_NUMBER") IS NOT NULL;

END
NAME
a
b
c
d
e
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值