将不同行的字符数据横向连接

DECLARE @roles NVARCHAR(255);
SELECT @roles = ISNULL(@roles + ',','') + r.RoleName FROM Physical.Roles r INNER JOIN Physical.UsersInRoles ur ON r.Id=ur.RoleId WHERE ur.UserId=@userId;
SELECT @roles

输出结果示例:Admin,User

 

附:表结构

CREATE TABLE Roles
(
  Id INT NOT NULL ,
  RoleName NVARCHAR(20),
  CONSTRAINT UX_Roles_RoleName UNIQUE NONCLUSTERED   ([RoleName] ASC )
)

CREATE TABLE UsersInRoles
(
 UserId UNIQUEIDENTIFIER NOT NULL,
 RoleId INT NOT NULL
)

posted @ 2013-10-10 09:52  道云  阅读(197)  评论(0编辑  收藏  举报