需要从sql中的分隔字符串中获取特定的子字符串

时间:2016-09-15 12:19:03

标签: sql oracle

我在SQL中有一个字符串

1|208080|"20170815|00:00:00"|"20160615|23:59:59

我只需要从SQL

中的select语句中获取值20160615

1 个答案:

答案 0 :(得分:0)

这个正则表达式处理列表中存在的NULL元素,并且只抓取第5个管道分隔字段中的数字(双引号看起来像拼写错误,但你永远不知道)。它非常灵活,因此您可以获得所需的任何字段,只需更换“' 5'在与你想要的领域的通话中。

SQL> with tbl(str) as (
     select '1|208080|"20170815|00:00:00"|"20160615|23:59:59'
     from dual
   )
   select regexp_substr(str, '(\d*?)(\||$)', 1, 5, NULL, 1) field5
   from tbl;

FIELD5
--------
20160615

SQL>