Oracle查询如何才能行转列?sunziren

database

  原创文章,转载务必注明出处。


  今天工作的时候,碰到一个问题,涉及oracle行转列,用了半小时解决,因此在这里写个博客记录一下解决办法。

  原数据库表的数据是:

  

   想要达到的效果是:

  

   经过思考,这是一个oracle行转列的操作,根据xn,qxdm,nj这三列值来分组查询所有的数据,把xn,qxdm,nj三列相同的数据看为一行。

  在百度上找了半小时sql,自己又调试了半个小时,终于把这个效果实现了,sql如下:

 1select*from (select xn,qxdm,nj,xk,gxsj,cbbb from test) t pivot(

2max(t.cbbb) for xk in (

3"道德与法制"as 道德与法制,

4"语文"as 语文,

5"数学"as 数学,

6"音乐"as 音乐,

7"美术"as 美术,

8"科学"as 科学,

9"英语"as 英语,

10"书法"as 书法,

11"信息技术"as 信息技术

12 ) ) where1=1

  核心是利用了oracle的pivot函数,问题至此解决,写下次过程以便他人参考。


  原创文章,转载务必注明出处。

以上是 Oracle查询如何才能行转列?sunziren 的全部内容, 来源链接: utcz.com/z/532034.html

回到顶部