Oracle 8g - 如何创建一个没有枢轴的动态 table?

Oracle 8g - How can i create a dynamic table without pivot?

我需要在 Oracle 8g 中创建一个动态 table,但是这个版本没有 PIVOT 属性。我想创建一个这样的 table。

Date         | Code | count 
12/04/2016   |  a1  |  8
12/05/2016   |  a2  |  10
10/06/2016   |  a3  |  4
24/10/2016   |  a2  |  6

Date         | a1  |  a2 | a3
12/04/2016   |  8  |     |
12/05/2016   |     |  10 |
10/06/2016   |     |     |  4
24/10/2016   |     |  6  |

代码数量未定义。这就是我无法创建静态 table 的原因。

使用 "plain" 数据透视查询:

SELECT Date,
       max( CASE code WHEN 'a1' THEN count END ) As a1,
       max( CASE code WHEN 'a2' THEN count END ) As a2,
       max( CASE code WHEN 'a3' THEN count END ) As a3
FROM table
GROUP BY Date

PIVOT子句只是一个语法糖,方便表达上述查询
下面使用 PIVOT 子句的查询与上面的相同。

SELECT * 
FROM (SELECT date, code, count FROM table )
PIVOT (
  max(  count ) FOR code IN ( 'a1' as a1, 'a2' as a2, 'a3' as a3 )
)