單獨列出的章節。由於用處比較多。mysql
select SUBSTRING_INDEX(SUBSTRING_INDEX("192.168.1.1",".",1),'.',-1), SUBSTRING_INDEX(SUBSTRING_INDEX("192.168.1.1",".",2),'.',-1), SUBSTRING_INDEX(SUBSTRING_INDEX("192.168.1.1",".",3),'.',-1), SUBSTRING_INDEX(SUBSTRING_INDEX("192.168.1.1",".",4),'.',-1) from T1
這個無需解釋。sql
是我第上一章最後一個例子的擴展code
select max(case when y.rn=1 then addressSub end) a, max(case when y.rn=2 then addressSub end) b, max(case when y.rn=3 then addressSub end) c, max(case when y.rn=4 then addressSub end) d from ( select ROW_NUMBER() over(partition by name order by len(c) desc) rn,c,SUBSTRING(c,2,CHARINDEX(',',c,2)-2) as addressSub from ( select SUBSTRING(csv.emps,iter.pos,LEN(csv.emps)) c,'7654,7698,7782,7788' name from (select ','+'7654,7698,7782,7788'+','as emps from t1) csv,(select id as pos from t100) iter where iter.pos<LEN(csv.emps) ) x where LEN(c)>1 and SUBSTRING(c,1,1)=',' ) y