大家好我在学校遇到这个问题:
有一个名为clientProjectDetail
的表,它有以下列
Clientid, ClientName, ProjectName
在Corp
数据库中。
每个客户都可以访问一个或多个项目。编写SQL查询以将ProjectNames
旁边的多个Clientnames
作为单个逗号分隔列表返回。我现在无法想象它已经有几个小时了...感谢任何可以分享一些见解的人
答案 0 :(得分:1)
你应该能够使用这样的东西:
SELECT distinct c1.Clientid,
c1.ClientName,
LEFT(projects , LEN(projects)-1) projects
FROM clientProjectDetail c1
CROSS APPLY
(
SELECT c2.ProjectName + ', '
FROM clientProjectDetail c2
where c1.Clientid = c2.Clientid
FOR XML PATH('')
) m (projects)
答案 1 :(得分:1)
玩这个查询:( STUFF删除了第一个逗号和FOR XML PATH('')帮助你将文本连接到单行)
SELECT Clients.ClientName,
Projects = STUFF(
(
SELECT ', ' + clientProjectDetail.ProjectName
FROM clientProjectDetail
WHERE clientProjectDetail.Clientid = Clients.Clientid
FOR XML PATH('')
), 1, 2, '')
FROM clientProjectDetail AS Clients