黑马程序员技术交流社区

标题: 数据库的问题 [打印本页]

作者: HM邱刚权    时间: 2013-4-9 16:20
标题: 数据库的问题
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

作者: 韦俊琳    时间: 2013-4-9 17:47
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
复制代码
仅供参考
作者: 郑丹丹1990    时间: 2013-4-9 22:00
学习了~~~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2