Oracle SQL 動態透視表:執行時產生值的技巧
在 Oracle SQL 中使用動態透視表時,一個常見的難題是:每當資料來源中新增值時,都需要手動更新透視表達式。這種手動過程既費時又容易出錯。
為了解決這個問題,您可以採用一種動態方法,該方法會根據可用資料自動產生透視表達式。具體方法如下:
首先,建立一個臨時字串變數來保存動態透視表達式。使用 COLUMN 指令,您可以定義一個名為 temp_in_statement
的新暫存欄位來儲存產生的透視表達式。
接下來,使用 COLUMN NEW_VALUE 函數以及 LISTAGG 函數在 temp_in_statement
列中建立動態透視表達式。此表達式將由資料來源中的不同值組成,這些值以逗號分隔,並加上適當的別名。
一旦您在 temp_in_statement
列中有了動態透視表達式,就可以在您的 PIVOT 查詢中將其作為參數引用。例如:
<code class="language-sql">SELECT * FROM ( SELECT myNumber, myLetter, myValue FROM myTable ) PIVOT (Sum(myValue) AS val FOR myLetter IN (&str_in_statement));</code>
在此查詢中,&str_in_statement
佔位符將被儲存在 temp_in_statement
列中的動態透視表達式取代。這樣,您就可以執行透視查詢,而無需手動更新透視表達式。
以上是如何使用執行時期產生的值在 Oracle SQL 中建立動態資料透視?的詳細內容。更多資訊請關注PHP中文網其他相關文章!