2012-07-26 147 views
5

根據oracle文檔,PIVOT函數不支持「IN」子句中的子查詢,但可以在PIVOT XML函數中使用。 例如支持子查詢的PIVOT-IN的替代方法

SELECT * 
FROM table_name 
PIVOT 
(
    SUM(column_name_1) 
    FOR [column_name_2] IN (['Output_Column1'],['Output_Column2']) 
) 
AS aliasName 

我需要用子查詢替換['Output_Column1'],['Output_Column2']

是否還有一些其他功能相當於PIVOT我們可以提供子查詢,而不是硬編碼整個輸出列或甚至在PIVOT函數本身?

回答

1

不,在解析時必須知道列的數量。對於PIVOT XML來說,沒有問題,因爲這樣的查詢只返回一列。

+0

謝謝Marcin。但是有沒有像PIVOT和滿足上述標準(使用子查詢)等功能? – 2012-07-27 10:05:23

+2

@VijayKrish我的評論是關於任何SQL查詢 - 你不能有可變數量的列,沒有這樣的選項。也許可以解釋你想要達到的目標。你爲什麼需要這樣的東西? – 2012-07-27 11:43:10

+0

我的表格由以下coulmns組成。 Person_id,狀態等。 – 2012-08-01 07:15:56