DB2:提取两个特定定界符之间的字符串

时间:2020-01-14 17:54:32

标签: db2

我正在为Crystal Report编写DB2查询,并且遇到了问题。我的一个表中有一列看起来像这样:

VISITOR=123456|ID=789

我需要提取第一个“ =”和“ |”之间的“ 123456”之后,针对该列中的所有行。我能够找出Crystal中的公式,并且我想可以用SQL来完成它,但是将其转换为DB2却很困难。例如,对我来说,不能使用CHARINDEX就是一个秀场停止者。谁能提供帮助?谢谢。

1 个答案:

答案 0 :(得分:1)

尝试REGEXP_SUBSTR scalar function

SELECT REGEXP_SUBSTR(T.STR, '[^=]*=([^|]*)|', 1, 1, '', 1)
FROM (
VALUES 
  'VISITOR=123456|ID=789'
, 'str1 = 123456 | str2'
--, 'whatever string'
) T (STR);