SQL列变成行

zgke 2008-12-17 11:53:49
假如有一个表
ID Name
1 AA
2 BB
3 CC

我想要的结果是
AA,BB,CC
怎么解决

...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengqian 2008-12-17
  • 打赏
  • 举报
回复
楼上的对
mustudent 2008-12-17
  • 打赏
  • 举报
回复
[CODE=SQL]
CREATE TABLE #
(
CODE CHAR(10)
)
INSERT # SELECT 'A' UNION SELECT 'B' UNION SELECT 'C' UNION SELECT 'D' UNION SELECT'E' UNION SELECT'F' UNION SELECT 'G'
DECLARE @SQL VARCHAR(8000)
SELECT @SQL=COALESCE(@SQL+',','')+CODE FROM #
PRINT @SQL
[/CODE]
zpzpyesterday 2008-12-17
  • 打赏
  • 举报
回复

create table t1 (id int ,name varchar(10))
insert into t1 values(1,'AA')
insert into t1 values(2,'BB')
insert into t1 values(3,'CC')

declare @a varchar(100)
select @a=isnull(@a+',','')+name from t1
select @a

----------------------------------------------------------------------------------------------------
AA,BB,CC

(1 件処理されました)
dawugui 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 zgke 的帖子:]
假如有一个表
ID Name
1 AA
2 BB
3 CC

我想要的结果是
AA,BB,CC
怎么解决
[/Quote]

declare @output varchar(8000)
select @output = coalesce(@output + ',' , '') + Name from tb
print @output
dawugui 2008-12-17
  • 打赏
  • 举报
回复
create table tb(col varchar(20))
insert tb values ('a')
insert tb values ('b')
insert tb values ('c')
insert tb values ('d')
insert tb values ('e')
go

--方法一
declare @sql varchar(1000)
set @sql = ''
select @sql = @sql + t.col + ',' from (select col from tb) as t
set @sql='select result = ''' + left(@sql , len(@sql) - 1) + ''''
exec(@sql)
/*
result
----------
a,b,c,d,e,
*/

--方法二
declare @output varchar(8000)
select @output = coalesce(@output + ',' , '') + col from tb
print @output
/*
a,b,c,d,e
*/

drop table tb

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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