用户组表groupID,groupName
用户表userNO,groupID
现在我想按组查询各用户组的所有成员/:SELECT tbl_group.GroupID,GroupName,('该组现有成员/n' + userNO)as member
FROM TBL_GROUP
left join
tbl_user
on tbl_group.groupID = tbl_user.groupID
group by tbl_group.groupID,groupName,userno
这样得到的效果是管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2
普通用户 该组现有成员/ntest000
普通用户 该组现有成员/ntest01
普通用户 该组现有成员/ntnt1 我想得到的效果是
管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2/ntest000/ntest01/ntnt1请教如何写?
用户表userNO,groupID
现在我想按组查询各用户组的所有成员/:SELECT tbl_group.GroupID,GroupName,('该组现有成员/n' + userNO)as member
FROM TBL_GROUP
left join
tbl_user
on tbl_group.groupID = tbl_user.groupID
group by tbl_group.groupID,groupName,userno
这样得到的效果是管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2
普通用户 该组现有成员/ntest000
普通用户 该组现有成员/ntest01
普通用户 该组现有成员/ntnt1 我想得到的效果是
管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2/ntest000/ntest01/ntnt1请教如何写?
解决方案 »
- 关于 order by 取固定值排序
- 简单插入
- 导出SQL脚本问题
- 邹建及各位大侠,sql server 7.0 和 sql server 2000的客户端是不是不能装在同一台机器上啊?????
- 求sql语句
- 有关j老师那种分页方法的问题
- 怪!机房电脑sql 2000全部不能用,服务管理器连不上
- 无法获取有关 Windows NT 组/用户 '*****'的信息,如何解决
- 困扰几天的树型结构查询问题
- select 语句的 In 子句如何写,select * from test in "c:\1.xls" [execl 5.0] 为何老是不对
- 如何创建如下的存储过程
- 为什么存储过程里set ansi_nulls off无效?
a b
1 1
1 2
1 3
2 1
2 2
3 1
--如何转换成如下结果:
a b
1 1,2,3
2 1,2
3 1 create table tb
(
a int,
b int
)
insert into tb(a,b) values(1,1)
insert into tb(a,b) values(1,2)
insert into tb(a,b) values(1,3)
insert into tb(a,b) values(2,1)
insert into tb(a,b) values(2,2)
insert into tb(a,b) values(3,1)
goif object_id('pubs..f_hb') is not null
drop function f_hb
go--创建一个合并的函数
create function f_hb(@a int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(b as varchar) from tb where a = @a
set @str = right(@str , len(@str) - 1)
return(@str)
End
go--调用自定义函数得到结果:
select distinct a ,dbo.f_hb(a) as b from tbdrop table tb--结果
a b
----------- ------
1 1,2,3
2 1,2
3 1(所影响的行数为 3 行)
多个前列的合并
数据的原始状态如下:
ID PR CON OP SC
001 p c 差 6
001 p c 好 2
001 p c 一般 4
002 w e 差 8
002 w e 好 7
002 w e 一般 1
===========================
用SQL语句实现,变成如下的数据
ID PR CON OPS
001 p c 差(6),好(2),一般(4)
002 w e 差(8),好(7),一般(1)if object_id('pubs..tb') is not null
drop table tb
gocreate table tb
(
id varchar(10),
pr varchar(10),
con varchar(10),
op varchar(10),
sc int
)
insert into tb(ID,PR,CON,OP,SC) values('001', 'p', 'c', '差', 6)
insert into tb(ID,PR,CON,OP,SC) values('001', 'p', 'c', '好', 2)
insert into tb(ID,PR,CON,OP,SC) values('001', 'p', 'c', '一般', 4)
insert into tb(ID,PR,CON,OP,SC) values('002', 'w', 'e', '差', 8)
insert into tb(ID,PR,CON,OP,SC) values('002', 'w', 'e', '好', 7)
insert into tb(ID,PR,CON,OP,SC) values('002', 'w', 'e', '一般', 1)
goif object_id('pubs..test') is not null
drop table test
go
select ID,PR,CON , OPS = op + '(' + cast(sc as varchar(10)) + ')' into test from tb--创建一个合并的函数
if object_id('pubs..f_hb') is not null
drop function f_hb
go
create function f_hb(@id varchar(10),@pr varchar(10),@con varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(OPS as varchar) from test where id = @id and @pr = pr and @con = con
set @str = right(@str , len(@str) - 1)
return(@str)
End
go--调用自定义函数得到结果:
select distinct id ,pr , con , dbo.f_hb(id,pr,con) as OPS from testdrop table tb
drop table test--结果
id pr con OPS
---------- ---------- ---------- -------------------
001 p c 差(6),好(2),一般(4)
002 w e 差(8),好(7),一般(1)(所影响的行数为 2 行)create table b
(col varchar(20))insert b values ('a')
insert b values ('b')
insert b values ('c')
insert b values ('d')
insert b values ('e')
declare @sql varchar(1024)
set @sql=''
select @sql=@sql+b.col+',' from (select col from b) as b
set @sql='select '''+@sql+''''
exec(@sql)
管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2
普通用户 该组现有成员/ntest000
普通用户 该组现有成员/ntest01
普通用户 该组现有成员/ntnt1 才能得出这样的结果:管理员 该组现有成员/ntnt 2
普通用户 该组现有成员/ntest 2/ntest000/ntest01/ntnt1