0
ORACLE:即第三分號後和其值與dORACLE:即第三分號後和其值的管之前返回列值SQL REGEXP_SUBSTR與d開始
例子開始管之前返回列值SQL REGEXP_SUBSTR :
column value: 'D:5:testps:12345|blah blah/blah'
期望值:12345
的正則表達式,將其過濾分號第三後和管之前與d和返回值開始值
ORACLE:即第三分號後和其值與dORACLE:即第三分號後和其值的管之前返回列值SQL REGEXP_SUBSTR與d開始
例子開始管之前返回列值SQL REGEXP_SUBSTR :
column value: 'D:5:testps:12345|blah blah/blah'
期望值:12345
的正則表達式,將其過濾分號第三後和管之前與d和返回值開始值
select column_value,
regexp_substr(column_value, '([^:]*:){3}([^|]*)\|', 1, 1, null, 2) as str
from (
select 'D:5:testps:12345|blah blah/blah' as column_value from dual union all
select 'XD:5:testps:12345|blahblah/blah' as column_value from dual
)
where column_value like 'D%'
;
COLUMN_VALUE STR
------------------------------- -----
D:5:testps:12345|blah blah/blah 12345
您可以使用regex_replace
:
select case when col like 'D%'
then regexp_replace(col, '^([^:]*:){3}(\d+)\|.*', '\2') num
end
from t;
產地:
12345
它產生的空當山坳不d開始
什麼將這個回報,做一個字符串不是以D開頭? (我認爲OP不希望返回任何東西 - 甚至不是NULL。)NULL仍然是從D開始的字符串的有效返回! – mathguy