繁体   English   中英

在SAP HANA中分割定界字符串

[英]Split delimited string in SAP HANA

我正在使用HANA 1.0 SPS12。 有没有办法在SAP HANA中分割定界字符串。

我用竖线分隔字符串为-

v_input = '1111|2222|3333|4444'

我需要根据定界部分的位置输出-

select seperate_string(v_input,pos) from dummy;

例如

select seperate_string('1111|2222|3333|4444',1 ) from dummy; --1111
select seperate_string('1111|2222|3333|4444',2 ) from dummy; --2222
select seperate_string('1111|2222|3333|4444',3 ) from dummy; --3333

是否可以用SUBSTR_REGEXP做到这一点

我尝试了下面的编码,但没有成功-

select SUBSTR_REGEXPR('[^\|]+' IN '1111|2222|3333|4444' GROUP 1 ) from dummy;

是的,您可以尝试以下SUBSTRING_REGEXPR()

SELECT SUBSTRING_REGEXPR('[^|]+' IN '1111|2222|3333|44|555' FROM 1 OCCURRENCE 4) from dummy;
--44

SELECT SUBSTRING_REGEXPR('[^|]+' IN '1111|2222|3333|44|555' FROM 1 OCCURRENCE 2) from dummy;
--2222

是的,可以通过SUBSTR_REGEXPR()

select SUBSTR_REGEXPR('(.+)\|(.+)\|(.+)\|(.+)' IN  '1111|2222|3333|4444' GROUP 1 ) from dummy;  
-- 1111
select SUBSTR_REGEXPR('(.+)\|(.+)\|(.+)\|(.+)' IN  '1111|2222|3333|4444' GROUP 2 ) from dummy;  
-- 2222
select SUBSTR_REGEXPR('(.+)\|(.+)\|(.+)\|(.+)' IN  '1111|2222|3333|4444' GROUP 3 ) from dummy;  
-- 3333
select SUBSTR_REGEXPR('(.+)\|(.+)\|(.+)\|(.+)' IN  '1111|2222|3333|4444' GROUP 4 ) from dummy;  
-- 4444

正则表达式在|之前的字符上建立四个匹配组| 并在字符串的末尾。 SUBSTR_REGEXPR()函数中的GROUP x参数指定应返回哪个匹配组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM