Sql语句,将一列数据变成一行并存到另一张表中!

lining251 2009-07-14 10:31:11
如题。
年份
1
2
3
4
5
6
7
存到新表中就是这样
年份:1 2 3 4 5 6 7 8

大概就是这样,但表肯定比这复杂。请各位大侠帮忙给点方法,谢谢。
...全文
596 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lining251 2009-07-15
  • 打赏
  • 举报
回复
我的要求是这样的:
项目 收入
P1 10
p2 20
p3 30
变成这样的表:
项目 p1 p2 p3
收入 10 20 30

这样怎么实现?大侠们救救我啊!
xyworkroom 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guguda2008 的回复:]
SQL codeDECLARE@TTABLE(
T_YEARVARCHAR(20)
)INSERTINTO@TSELECT'1'UNIONALLSELECT'2'UNIONALLSELECT'3'UNIONALLSELECT'4'UNIONALLSELECT'5'UNIONALLSELECT'6'UNIONALLSELECT'7'UNIONALLSELECT'8'DECLARE@STRVARCHA¡­
[/Quote]
正解!
guguda2008 2009-07-14
  • 打赏
  • 举报
回复

DECLARE @T TABLE(
T_YEAR VARCHAR(20)
)
INSERT INTO @T
SELECT '1' UNION ALL
SELECT '2' UNION ALL
SELECT '3' UNION ALL
SELECT '4' UNION ALL
SELECT '5' UNION ALL
SELECT '6' UNION ALL
SELECT '7' UNION ALL
SELECT '8'
DECLARE @STR VARCHAR(8000)
SELECT @STR='年份:'
SELECT @STR=@STR+' '+T_YEAR FROM @T
ORDER BY T_YEAR ASC
SELECT @STR
/*
年份: 1 2 3 4 5 6 7 8
*/
百年树人 2009-07-14
  • 打赏
  • 举报
回复
是一列还是多列?一列的话直接相加,多列的话写个函数
farwy 2009-07-14
  • 打赏
  • 举报
回复
SQL Server2005引入了很多迎合开发者口味的新特性,虽然改动不大,却大大了减少了开发者的工作量,这种替用户考虑的开发思路,值得称赞。

在SQL Server2000中,要实现行列转换,需要综合利用聚合函数和动态SQL,实现起来需要一定的技巧,所以在CSDN的SQL讨论区里可以看到大量询问行列转换如何实现的问题。到了2005中,使用新引进的关键字PIVOT/UNPIVOT,可以轻松实现行列转换的需求。

参考:http://www.cnblogs.com/raymond19840709/archive/2009/05/05/1449680.html

http://technet.microsoft.com/zh-cn/library/ms177410.aspx
lining251 2009-07-14
  • 打赏
  • 举报
回复
你们理解错了,我的要求是新表的第一列存1,第二列存2,第三列存3.。。。。。。。。。。。
给出的代码完全不对啊!
lining251 2009-07-14
  • 打赏
  • 举报
回复
先学习学习,看看好用不。大侠们等着接分哈。

22,206

社区成员

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

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