高难度问题,高手请进!高分送礼!

garygan 2003-10-17 05:42:54
现有这样的表:
编号 名称
001 版房
002 切纸
002 印刷
003 裱纸
......

如何用一个sql语句来查出这样的结果来:版房、切纸、印刷、裱纸 这样的字符串,当然不能考虑用游标循环的方式了,因为这是没有效率的。
请高手指点。
...全文
25 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
realgz 2003-10-18
  • 打赏
  • 举报
回复
是不是要家个order by 啊:
select @sql=@sql+名称+'、' from tablename order by 编号
yoki 2003-10-18
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+名称+'、' from tablename
set @sql=left(@sql,len(@sql)-1)
select @sql
leimin 2003-10-18
  • 打赏
  • 举报
回复
CREATE TABLE T(CH1 INT,CH2 VARCHAR(10))
GO
INSERT INTO T VALUES(1,'abc')
INSERT INTO T VALUES(1,'def')
INSERT INTO T VALUES(2,'wer')
INSERT INTO T VALUES(2,'wqr')
GO
create function getstr(@ID int)
returns varchar(1000)
as
begin
declare @str varchar(1000)
set @str=''
select @str=@str+rtrim(CH2)+',' from T where CH1=@ID
return @str
end
GO
select CH1,dbo.getstr(CH1) from T GROUP BY CH1 HAVING COUNT(*)>1
go
DROP TABLE T
garygan 2003-10-18
  • 打赏
  • 举报
回复
谢谢你们,你们说的都对,甘在此有礼了!这个问题实在帮了我不少忙?我全部给分!并希望能和你们交个朋友。qq:是32511540
brunojiang 2003-10-18
  • 打赏
  • 举报
回复
declare @str varchar(8000)
set @str=''
select @str=@str+','+名称 from 表A
set @str=right(@str,len(@str)-1)
select @str

select @sql=@sql+名称+'、' from tablename order by 编号
txlicenhe 2003-10-17
  • 打赏
  • 举报
回复
declare @str varchar(8000)
set @str=''
select @str=@str+','+名称 from 表A
set @str=right(@str,len(@str)-1)
select @str
qdubit 2003-10-17
  • 打赏
  • 举报
回复
赞同 letsflytogether(恨!不能拥有天下所有的财富,然后平分)的说法,我就不多说了。
yujohny 2003-10-17
  • 打赏
  • 举报
回复
declare @str nvarchar(2000)
set @str=''
select @str=@str+isnull(物料名称,'')+'、' from 表
select @str
伍子V5 2003-10-17
  • 打赏
  • 举报
回复
declare @str varchar(1000)
set @str=''
select @str=@str+名称+'、' from 表
select @str
sdhdy 2003-10-17
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+名称+'、' from tablename
set @sql=left(@sql,len(@sql)-1)
select @sql

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧