Oracle
REGEXP_SUBSTR 拆分分隔值
我有一個名為的欄位
FREQUENCY
,它的值類似於'10,0;30'
. 如何編寫正則表達式以獲得如下結果:FREQUENCY 10 0 30
如果您希望返回單行的值而不使用逗號和分號,那麼完成此操作的最簡單方法是使用如下
REPLACE()
函式:REPLACE(REPLACE(FREQUENCY, ',', ' '), ';', ' ') "FREQUENCY"
.
由於您有不同的分隔符,請將它們更改為一個(例如分號),然後將列拆分為行。
SQL> with test (freq) as 2 (select '10,0;30' from dual) 3 select regexp_substr(replace(freq, ',', ';'), '[^;]+', 1, level) freq 4 from test 5 connect by level <= regexp_count(replace(freq, ',', ';'), ';') + 1; FREQ ------- 10 0 30 SQL>