A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM邱刚权 中级黑马   /  2013-4-9 16:20  /  1184 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

id      year  month   amount
1        1991        1        1.1
2        1991        2        1.2
3        1991        3        1.3
4        1991        4        1.4
5        1992        1        2.1
6        1992        2        2.2
7        1992        3        2.3
8        1992        4        2.4



怎样写sql语句显示成这样的数据表
year    m1   m2   m3   m4
1991   1.1   1.2   1.3   1.4
1992   2.1   2.2   2.3   2.4

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

2 个回复

倒序浏览
PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。 PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。
以上问题的解决方案为:
  1. select year,
  2. [1]as "m1",
  3. [2]as "m2",
  4. [3]as "m3",
  5. [4]as "m4",
  6. from Table
  7. pivot
  8. (
  9.         sum(amount)
  10.         for month in
  11.         ([1],[2],[3],[4])
  12. )
  13. as pvt
复制代码
仅供参考

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
学习了~~~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马