行轉列操作

2021-08-17 16:31:21 字數 1273 閱讀 2201

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...