请高手赐教一个单表按条件查询sql语句

来源:百度知道 编辑:UC知道 时间:2024/05/13 04:42:50
例如表A中有两个字段UserId,RoleName,分别表示用户ID和用户的角色,用户可以对映多个用户角色,如表中有数据1,Admin;1,Subcrition;1,Common;2,Common;2,Admin;3,Common;如何才能够查询出用户ID唯一的所有角色,例如我想要的结果是通过Sql语句查询出:1,Admin、Subcrition、Common;2,Common、Admin;3,Common;注:UserId不能重复,只能出现一次,并且通过"、"或其它分隔符列出该UserId的所有角色;请高手赐教.

可以用游标实现

select userid,rolename
from tableA
group by userid

又是行转列的问题……

2楼的userid要加distinct哈

一个完整的脚本,和你的问题类似,如下:
create table OrgTable
( sID int IDENTITY,
A char(2),
B char(2)
)
insert into OrgTable(A,B) values ('zg','aa')
insert into OrgTable(A,B) values ('zg','bb')
insert into OrgTable(A,B) values ('zg','cc')
insert into OrgTable(A,B) values ('da','ee')
insert into OrgTable(A,B) values ('da','dd')
insert into OrgTable(A,B) values ('re','cc')

create table ObjTable
( sID int IDENTITY,
C char(2),
D char(100)
)

insert into ObjTable(C) select A from OrgTable group by A

create table #tmp
( sID int IDENTITY,
B char(2)
)

declare @num int
set @num = (select count(*) from ObjTable)
declare @n int
set @n = 1