我正在嘗試透視數據集。我需要能夠過濾進入數據透視表的值,但是數據透視表本身將會是更大SELECT語句的一部分。Oracle中的預過濾器數據透視數據
所以,舉例來說:
WITH TEST_DATA AS (
SELECT 1 AS ID, 'ALUM' AS DONOR_CODE, 1 AS PRIORITY FROM DUAL
UNION
SELECT 1 AS ID, 'STAFF' AS DONOR_CODE, 2 AS PRIORITY FROM DUAL
UNION
SELECT 8 AS ID, 'ALUM' AS DONOR_CODE, 1 AS PRIORITY FROM DUAL
UNION
SELECT 8 AS ID, 'ALMG' AS DONOR_CODE, 2 AS PRORITY FROM DUAL
UNION
SELECT 8 AS ID, 'STAF' AS DONOR_CODE, 3 AS PRORITY FROM DUAL
)
, PIVOT_DATA AS (
SELECT *
FROM TEST_DATA
PIVOT (MAX(DONOR_CODE) AS DONOR_CODE FOR PRIORITY IN (1,2,3)
)
)
SELECT * FROM PIVOT_DATA;
回報......
ID 1_DONOR_CODE 2_DONOR_CODE 3_DONOR_CODE
1 ALUM STAFF
8 ALUM ALMG STAF
我需要什麼,能夠做的是過濾TEST_DATA它被轉動之前。所以,如果我只想看看有'ALMG'的ID,我怎麼能得到一個看起來像的結果集...
ID 1_DONOR_CODE 2_DONOR_CODE 3_DONOR_CODE
8 ALMG
謝謝。
爲什麼''almg''去'1_donor',而不是'2_donor'? –