SQL Fiddle
SQL查詢
select c1.Eid, c1.ename,c1.desig,c1.sourceD,
( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
) as Locations
from Contacts c1
group by c1.Eid, c1.ename,c1.desig,c1.sourceD
工作?
如果不想逗號到底:
SELECT c1.Eid, c1.ename,c1.desig,c1.sourceD,
LEFT(( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
),LEN(( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
))-1) AS Locations
FROM Contacts c1
GROUP BY c1.Eid, c1.ename,c1.desig,c1.sourceD
這個查詢可以讓你避免lenght 0:
SELECT c1.Eid, c1.ename,c1.desig,c1.sourceD,
LEFT(( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
),CASE WHEN LEN(( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
))=0 THEN 1 ELSE LEN(( SELECT x.location + ', '
FROM Contacts x
WHERE c1.Eid = x.Eid
ORDER BY x.location
FOR XML PATH ('')
)) END -1) AS Locations
FROM Contacts c1
GROUP BY c1.Eid, c1.ename,c1.desig,c1.sourceD
您lodaing從表這個數據? – Justin
是的,我正在加載數據使用SQL查詢 – user1348424