我有一個oracle查詢,它的一部分是使用DECODE計算一些值。例如:oracle:解碼和子查詢選擇結果
SELECT ...,
(SELECT DECODE((SELECT 23 FROM DUAL),
0, null,
(SELECT 23 FROM DUAL))
FROM DUAL)
FROM ...
這裏的「23」的值在運行時被計算,這是相當複雜的連接 - 多個表,使用PARTITION BY
等,所以我想避免執行相同的子查詢,如果該值不爲「0 」。有沒有辦法寫這樣的東西
SELECT ...,
(SELECT DECODE ((SELECT 23 FROM DUAL) as test,
0, null,
test)
FROM DUAL)
FROM ...
感謝您的簡單和有用的輸入。 – hanumant 2011-06-01 04:59:24