--自定义函数:
create function f_str(@reqno varchar(20))
returns varchar(8000)
as
begin
declare @ret varchar(8000)
set @ret = ''
select @ret = @ret + ',' + rtrim(rcdusrid) from 表A where reqno = @reqno
return stuff(@ret,1,1,'')
endselect reqno,rcdusrid = dbo.f_str(reqno) from 表A group by reqno
create function f_str(@reqno varchar(20))
returns varchar(8000)
as
begin
declare @ret varchar(8000)
set @ret = ''
select @ret = @ret + ',' + rtrim(rcdusrid) from 表A where reqno = @reqno
return stuff(@ret,1,1,'')
endselect reqno,rcdusrid = dbo.f_str(reqno) from 表A group by reqno
解决方案 »
- 如何批量截取一批表中前面100条记录?
- 新人求指导 SQL 2008 ManagementStudio 无法连接到 (local)
- 关于表修改的问题,,,
- 如何建立这样的视图
- 大家都懂的,我不懂的一个问题。“我想将其中一台机的服务器注册到另一台机上”
- 多个表的查询
- **************支持机器猫兄(妹),也顶我自己一下,大力,邹建,马可,干部等高手们快来!!!
- 复制记录
- 如果在修改同一记录的某些字段时,同时修改另一些了段?
- 一句SQL语句查询价格之和
- 如果一个表上只有1列,在这列上建立聚集索引,那么索引扫描和表扫描哪个更快?为什么?
- 搜索找不到答案,关于sqlserver建立sybase链接服务器。
create function f_str(@reqno varchar(20))
returns varchar(8000)
as
begin
declare @ret varchar(8000)
set @ret = ''
select @ret = @ret + ',' + rtrim(rcdusrid) from 表A where reqno = @reqno
return stuff(@ret,1,1,'')
endselect reqno,rcdusrid = dbo.f_str(reqno) from 表A group by reqno
http://community.csdn.net/Expert/topic/4043/4043660.xml?temp=.8323633
create table 表A(reqno varchar(10),rcdusrid varchar(100))
--注意把rcdusrid字段弄大一写,否则你就自己create一个中间表,而不是into中间表了。。
insert 表A
select 'C10888', 'adams' union all
select 'C10888', 'allan' union all
select 'C11597', 'asnpg94' union all
select 'C11597', 'frank' union all
select 'C11597', 'jet'--查询
select * into #t from 表A
declare @s varchar(8000),@i varchar(20)
set @s=''
set @i=0
update #t
set @s=case when @i=reqno then @s+','+rcdusrid
else rcdusrid end,
@i=reqno ,reqno=@i,rcdusrid=@s
select reqno ,rcdusrid=max(rcdusrid)
from #t
group by reqno --删除表
drop table 表A,#t
--结果
reqno rcdusrid
---------- --------------------
C10888 adams,allan
C11597 asnpg94,frank,jet