合併Q1中的數行資料為Q2/Q3/Q4.
Combine the row data in Q1 Table to Q2/Q3/Q4.
Q1 = 資料源, table source
Q2 = Example 1
Q3 = Example 2
Q4 = Example 3
個人覺得使用stuff 比 substring 好, 因為不用寫上長度.
Q1,Q2,Q3,Q4 result:
Code:
create table #temp(Staff varchar(50),Department varchar(50))
insert into #temp values('A','IT')
insert into #temp values('B','IT')
insert i
合併Q1中的數行資料為Q2/Q3/Q4.
Combine the row data in Q1 Table to Q2/Q3/Q4.
Q1 = 資料源, table source
Q2 = Example 1
Q3 = Example 2
Q4 = Example 3
個人覺得使用stuff 比 substring 好, 因為不用寫上長度.
Q1,Q2,Q3,Q4 result:
Code:
create table #temp(Staff varchar(50),Department varchar(50))
insert into #temp values('A','IT')
insert into #temp values('B','IT')
insert into #temp values('C','Sale')
insert into #temp values('D','Sale')
--Q1
select *
from #temp
--Q2
select 'AllStaffs' = substring(
( select ', ' + Staff
from #temp
for XML path(''), elements
),2 ,500
) -- substring to remove first ','
--Q3
select 'AllStaffs' = stuff(
( select ', ' + Staff
from #temp
for XML path(''), elements
),1 ,1,''
) -- stuff to remove first ',' and add ''
--Q4
SELECT
Distinct Department
,Staff = stuff(
( SELECT ', ' + Staff
FROM #temp e2
WHERE e2.Department = e1.Department
FOR XML path(''), elements
),1,1,'')
FROM #temp e1
drop table #temp
參考:http://csharpdotnetfreak.blogspot.com/2009/07/mssql-combine-columns-comma-separated.html
------------------
熱愛生命 喜愛新奇 有趣的事物
過去 是無法改變
將來 卻能夠創造
希望使大家生活更便利
世界更美好
a guy who loves IT and life
