比如,有如下以逗號分隔的字串:
aaa,bbbb,cccc,dd,eeee要將其轉化為多列:
aaa解決方法:bbbb
cccc
ddeeee
select regexp_substr('aaa,bbbb,cccc,dd,eeee', '[^,]+', 1, rownum)主要用到3個技巧:from dual
connect by level <= length(regexp_replace('aaa,bbbb,cccc,dd,eeee', '[^,]+', ''));
常用方法:
select length(regexp_replace(replace('1234565', '5', '@'), '[^@]+', '')) count from dual;select lengthb(translate('abcdefgefgdbe','e'||'abcdefgefgdbe','e')) from dual;
select lengthb('abcdefgefgdbe')-lengthb(replace('abcdefgefgdbe','e','')) from dual;
function regexp_substr(string, pattern, position, occurrence, modifier)比如:__srcstr :需要進行正則處理的字串
__pattern :進行匹配的正規表示式
__position :起始位置,從第幾個字元開始正規表示式匹配(預設為1)
__occurrence :標識第幾個匹配組,預設為1
__modifier :模式('i'不區分大小寫進行檢索;'c'區分大小寫進行檢索。預設為'c'
會得到:select level from dual connect by level <= 5
123參考文件45
regexp_substr函式的整理
oracle的connect by level的使用
mysql 逗號分隔的id轉為逗號分隔的名稱
mysql 的一張表a的某1欄位是用逗號分隔的code,每個code對應在b表的有code和名稱的對應表。如果用語句檢索出,用逗號分隔的名稱拼接在一起。select b.engine number,group concat code name astran name fromt fix code a...
oracle如何拆分以逗號分隔的字串為多行
最近遇到乙個問題,需要把乙個帶有,的字串拆分成多行。通過查詢資料,這個操作需要使用以下2個關鍵知識 1.regexp substr函式 這個函式的作用是正則分隔字串,用法為 function regexp substr string,pattern,position,occurrence,modif...
oracle如何拆分以逗號分隔的字串為多列
最近遇到乙個問題,需要把乙個帶有,的字串拆分成多列。通過查詢資料,這個操作需要使用以下2個關鍵知識 1.regexp substr函式 這個函式的作用是正則分隔字串,用法為 function regexp substr string,pattern,position,occurrence,modif...