使用 charindexCROSS APPLY 將資料單欄轉多欄

範例如下:

 


DECLARE @table table (CustDetail varchar(500))

insert into @table
select 'Name=Join&Age=23&Gender=男&City=台北市'
union all
select 'Name=Tom&Age=32&Gender=男&City=新北市'
union all
select 'Name=May&Age=18&Gender=女&City=台中市'
union all
select 'Name=Alen&Age=25&Gender=男&City=台中市'
union all
select 'Name=Ben&Age=18&Gender=男&City=新北市'

select CustDetail
, Substring(CustDetail, 0, charindex('&', CustDetail)) as Name
, substring(CustDetail, P1.Cust + 1, P2.Cust - P1.Cust - 1) as Age
, substring(CustDetail, P2.Cust + 1, P3.Cust - P2.Cust - 1) as Gender
, substring(CustDetail, P3.Cust + 1, LEN(CustDetail) - p3.Cust) as City
from @table
CROSS APPLY (select (charindex('&', CustDetail))) as P1(Cust)
CROSS APPLY (select (charindex('&', CustDetail, P1.Cust+1))) as P2(Cust)
CROSS APPLY (select (charindex('&', CustDetail, P2.Cust+1))) as P3(Cust)
CROSS APPLY (select (charindex('&', CustDetail, P3.Cust+1))) as P4(Cust)

arrow
arrow

    bagwant 發表在 痞客邦 留言(0) 人氣()