求个列转行

lu仙深 2014-12-03 01:18:51
求大神

a表
ID
1
2
3
4
5
想查询出

显示一行 1,2,3,4,5
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepe00 2014-12-03
  • 打赏
  • 举报
回复
declare @value varchar(200);
set @value='';
--下面的cte只是模拟数据
;with cte as(
	select 1 as n 
	union all
	select n+1 from cte where n<5
)
----------cte end
select @value=@value+cast(n as varchar)+','
from cte
select @value
1,2,3,4,5, (1 行受影响)
lu仙深 2014-12-03
  • 打赏
  • 举报
回复
3Q 搞定来,原来2000 不支持for XML 语法
lu仙深 2014-12-03
  • 打赏
  • 举报
回复
引用 4 楼 Tiger_Zhao 的回复:
for xml 要 SQL Server 2005 及以上。
我倒难怪,SQL 2000下如何的搞?
Tiger_Zhao 2014-12-03
  • 打赏
  • 举报
回复
--SQL Server 2000 的做法
DECLARE @result varchar(8000)

SELECT @result = ISNULL(@result+',','')+convert(varchar(11),id) FROM a

SELECT @result AS result
Tiger_Zhao 2014-12-03
  • 打赏
  • 举报
回复
for xml 要 SQL Server 2005 及以上。
lu仙深 2014-12-03
  • 打赏
  • 举报
回复
lu仙深 2014-12-03
  • 打赏
  • 举报
回复
引用 1 楼 Tiger_Zhao 的回复:
SELECT Stuff((SELECT ','+convert(varchar(11),id) FROM a for xml path('')),
             1,1,'') AS result
消息 170,级别 15,状态 1,第 1 行 第 1 行: 'xml' 附近有语法错误。 不知道为什么
Tiger_Zhao 2014-12-03
  • 打赏
  • 举报
回复
SELECT Stuff((SELECT ','+convert(varchar(11),id) FROM a for xml path('')),
1,1,'') AS result

34,576

社区成员

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

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