在Oracle中预过滤透视数据

时间:2016-11-18 13:00:32

标签: oracle pivot

我试图转动数据集。我需要能够过滤进入数据透视表的值,但数据库本身将成为更大的SELECT语句的一部分。

所以,例如:

 ID   1_DONOR_CODE  2_DONOR_CODE    3_DONOR_CODE
  1   ALUM          STAFF   
  8   ALUM          ALMG            STAF

...返回

 ID   1_DONOR_CODE  2_DONOR_CODE    3_DONOR_CODE
  8   ALMG

我需要做的是在旋转之前过滤TEST_DATA。因此,如果我只想查看有“ALMG”的ID。如何获得看起来像......

的结果集
$arr = get_object_vars($obj);

感谢。

1 个答案:

答案 0 :(得分:1)

您可以查询TEST_DATA表:

PIVOT_DATA AS (
    SELECT *
    FROM
    (
        SELECT *
        FROM TEST_DATA
        WHERE DONOR_CODE = 'ALMG'
    )
    PIVOT (MAX(DONOR_CODE) AS DONOR_CODE FOR PRIORITY IN (1,2,3)
    )
)
SELECT * FROM PIVOT_DATA;