replace , substring,substring_index用法例項
源資料 mobile 123342,1232314,1243123,
replace(
substring(
substring_index(mobile,','a.id),
char_length(
substring_index(mobile,',',a.id-1)
)+1),
',',
'')
a.id=2的話,substring_index(mobile,』,』a.id),提取出來的字串便是第二個逗號前所有的字元,也就是兩個**號碼。例如『123342,1232314』
所以substring_index(mobile,』,』,a.id-1)提取出的字串第乙個逗號前的字元:便是第乙個**號碼『123342』
char_length(
substring_index(mobile,』,』,a.id-1)
)+1
所以這個長度便是7,
substring(
substring_index(mobile,','a.id),
char_length(
substring_index(mobile,',',a.id-1)
)+1
),這個意思就是
substring('123342,1232314',7)
從第七個開始提取 返回的也就是
『,1232314』
然後 replace就是把『,』,全部刪除掉。
便返回第二個**號碼。
select user_name,replace(substring(substring_index(mobile,','a.id),char_length(substring_index(mobile,',',a.id-1))+1),',','') as mobile from tb_sequence--序列表 as a
cross
join(
select user_name,concat(mobile,',') as mobile,length(mobile)-length(replace(mobile,',',''))+1
assize
from user1 as b) as b
on a.id<=b.size
Oracle 分組 行轉列操作
1 原始資料 這個資料是下面sql 查出的資料 月份營業部 使用者型別 開戶獎調整 提成調整 薪酬支出調集成計 select a.trademonth trademonth,a.broker branch brokerbranch,decode b.user type,3 2 5 2 b.user ...
mysql行轉列 subs mysql 行轉列
存在表score,記錄學生的考試成績,如下圖所示 現要求以 學生姓名,語文,數學,英語 這種格式顯示學生成績,如下圖所示 具體步驟如下 1 首先,使用case when函式輸出單個課程的成績 case when course 語文 then score end as 語文 case when cou...
mysql 動態行轉列 MySQL行轉列
比如乙個單子,多個收據單用逗號隔開,怎麼把這乙個單子所有收據單獨展示出來,行轉成列呢?方法一 這裡需要用到迴圈,首先建立乙個1 10的序列 select rownum rownum 1 as seq from select rownum 0 r,bills limit 0,10 其次依次運用 sub...