如何 select DB2 SQL 中被定界符包围的子字符串?
How to select a substring surrounded by delimiters in DB2 SQL?
我想 select '/' 分隔符之间的子字符串。
这是我的示例数据:
1/1/1990
13/111/1990
131/1/1990
2/11/1990
我想要得到这个输出:
1 1 1990
13 111 1990
131 1 1990
2 11 1990
我试过这个:
SELECT date,SUBSTRING(date, LOCATE('/', date)+ 1, LOCATE('/', date)-1) FROM data
不幸的是,当日期为 13/1/1990 或 1/13/1990 时,它不起作用。
我认为 DB2 支持 regexp_substr()
:
select regexp_substr(col, '[^/\+]+', 1, 1) as part1,
regexp_substr(col, '[^/\+]+', 1, 2) as part2,
regexp_substr(col, '[^/\+]+', 1, 3) as part3
from t;
我想 select '/' 分隔符之间的子字符串。 这是我的示例数据:
1/1/1990
13/111/1990
131/1/1990
2/11/1990
我想要得到这个输出:
1 1 1990
13 111 1990
131 1 1990
2 11 1990
我试过这个:
SELECT date,SUBSTRING(date, LOCATE('/', date)+ 1, LOCATE('/', date)-1) FROM data
不幸的是,当日期为 13/1/1990 或 1/13/1990 时,它不起作用。
我认为 DB2 支持 regexp_substr()
:
select regexp_substr(col, '[^/\+]+', 1, 1) as part1,
regexp_substr(col, '[^/\+]+', 1, 2) as part2,
regexp_substr(col, '[^/\+]+', 1, 3) as part3
from t;