sql 語句系列(分割ip)[八百章之第十四章]

前言

單獨列出的章節。由於用處比較多。mysql

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

sql service

是我第上一章最後一個例子的擴展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
相關文章
相關標籤/搜索