首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将一列转换为行- SQL Server

将一列转换为行- SQL Server
EN

Stack Overflow用户
提问于 2018-08-30 04:09:17
回答 1查看 53关注 0票数 -1

我有这样的疑问:

代码语言:javascript
复制
SELECT U.UserName, C.Name,
FROM CompanyUserMapping CU 
INNER JOIN Users U ON U.ID = CU.USERID 
INNER JOIN Company C ON C.ID = CU.CompanyID

这将返回哪个用户有权访问哪个公司的结果:

代码语言:javascript
复制
UserNAme     CompanyName
------------------------
userOne      CompanyOne  
UserOne      CompanyTwo  
UserTwo      CompanyOne  

我想修改查询,这样我就可以得到:

代码语言:javascript
复制
Username     CompanyName1   CompanyName2
----------------------------------------
UserOne      CompanyOne     CompanyTwo
UserTwo      CompanyOne     NULL

还有,类似这样的东西:

代码语言:javascript
复制
UserNAme     CompanyName
-------------------------------------
userOne      CompanyOne, CompanyTwo  
UserTwo      CompanyOne  

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 04:14:59

你可以实现第二个结果,如下所示:

代码语言:javascript
复制
SELECT UI.UserName, Name = 
    STUFF((SELECT ', ' + C.Name
           FROM CompanyUserMapping CU
           INNER JOIN Users U ON U.ID = CU.USERID 
           INNER JOIN Company C on  C.ID = CU.CompanyID
           WHERE U.UserName = UI.UserName 
          FOR XML PATH('')), 1, 2, '')
FROM Users UI
GROUP BY UserName
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52085377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档