Chinaunix首页 | 论坛 | 博客
  • 博客访问: 152283
  • 博文数量: 39
  • 博客积分: 825
  • 博客等级: 准尉
  • 技术积分: 955
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 14:05
文章分类

全部博文(39)

文章存档

2014年(4)

2013年(13)

2012年(22)

我的朋友

分类: 数据库开发技术

2014-02-26 21:02:32

  今天被前台开发员问到这方面的问题,因为公司都是用11g,所以想到了pivot与unpivot,一时
把用法忘了,在此记录备忘:

  PS:如果数据库提供了相关功能,没必要再让开发员去写java代码啥的。

unpivot示例:


点击(此处)折叠或打开

  1. WITH
  2. ---------------------------

  3. t1 AS
  4.  (SELECT 1 col1,
  5.          2 col2,
  6.          3 col3
  7.   FROM dual
  8.   UNION ALL
  9.   SELECT 4,
  10.          5,
  11.          6
  12.   FROM dual
  13.   UNION ALL
  14.   SELECT 7,
  15.          8,
  16.          9
  17.   FROM dual
  18.   UNION ALL
  19.   SELECT 10,
  20.          NULL,
  21.          12
  22.   FROM dual),
  23. ---------------------------

  24. t2 AS
  25.  (SELECT * FROM t1 WHERE t1.col1 = 1)
  26. ---------------------------

  27. SELECT cval,
  28.        nvl(to_char(cname),
  29.            '-') cname
  30. FROM t2 unpivot include NULLS(cname FOR cval IN(col1 AS 'col1',
  31.                                                   col2 AS 'col2',
  32.                                                   col3 AS 'col3'));

可参考的资料:



阅读(4744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~