如何从以下字符串中提取PAXG
0410|M|PAXG|20181114
在Db2 SQL中
答案 0 :(得分:1)
对于表BILL
及其带有数据的列COL1
,请尝试使用此方法。
SELECT
COL1
-- since 9.7
, xmlcast(xmlquery('fn:tokenize($s, "\|")[3]' passing BILL.COL1 as "s") as varchar(20)) as one
-- since 11.1
, REGEXP_SUBSTR(BILL.COL1 || '|', '([^\|]*)\|', 1, 3, '', 1) as two
FROM
(VALUES '0410|M|PAXG|20181114', '0410|M||20181114') BILL (COL1)
--BILL
;
答案 1 :(得分:1)
如果您使用的是Db2 11.1或更高版本,那么REGEXP_EXTRACT
将为您工作。例如
VALUES REGEXP_EXTRACT('0410|M|PAXG|20181114','([^\|]*)\|?', 1, 3, '', 1)
返回
1
------
PAXG