在SAP HANA中拆分分隔的字符串

时间:2018-02-21 08:21:28

标签: sql regex 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;

1 个答案:

答案 0 :(得分:0)

是的,可以使用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

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