请教查询结果显示问题

qinghuallt 2012-05-21 02:35:51
查询name一列,select name from users where ……
结果显示为:

name
张三
李四
王五
……

现在想要改显示为:
name
张三,李四,王五,……

请教,如果实现?
...全文
63 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinghuallt 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

给这点分,怎么写阿.
[/Quote]


。。。不好意思!

非常感谢啦!
祥元 2012-05-21
  • 打赏
  • 举报
回复

给你份:

--建立测试环境
Create Table 表(Item_ID varchar(10),sel varchar(10))
--插入数据
--注意下面Item_ID这个字段,这是进行分组的,可以自己进行测试下,把2都改成1
insert into 表
select '1','张三' union
select '1','李四' union
select '1','王五' union
select '2','赵六' union
select '2','老七'

--测试语句

select id=identity(int),* into #tt from 表

select item_id,sel,orderId=cast((select count(*) from #tt where item_id=a.item_id and id<=a.id) as char(1))
into #t from #tt a

DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT item_id'
SELECT @SQL= @SQL+ ',MIN(CASE WHEN orderId = ''' + orderId + ''' THEN sel END) [数据' + orderId + ']' FROM (SELECT DISTINCT orderId FROM #T) A
SET @SQL=@SQL+' FROM #t GROUP BY item_id'
exec (@SQL)

drop table #t
drop table #tt

--删除测试环境
Drop Table 表
go
/*
1 李四 王五 张三
2 老七 赵六 NULL*/


祥元 2012-05-21
  • 打赏
  • 举报
回复
给这点分,怎么写阿.
Mr_Nice 2012-05-21
  • 打赏
  • 举报
回复
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (name nvarchar(4))
insert into [TB]
select '张三' union all
select '李四' union all
select '王五'

select * from [TB]

select distinct [name]=stuff((select ','+[name] from tb for xml path('')), 1, 1, '')
from tb

/*
张三,李四,王五*/

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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