2011-11-20 22 views
6

我想在沒有從查詢中獲得數據時顯示默認消息。如何在查詢中找不到匹配項時顯示默認值?

例如 讓我們來查詢從員工

選擇empname其中id = 100

如果沒有數據這個搜索我想要得到Unavailable結果或所需結果匹配應該顯示。

那麼我應該如何編寫一個SQL查詢來實現這一點。

我正在使用Oracle 10g。

+1

你真的應該只返回'null',並讓你的調用應用程序決定它在遇到'db_null'時將如何表現,而不是在你的數據庫中執行它。 – Seph

+0

@ Seph:感謝您的提示,如果我在調用應用程序中返回null,我必須用默認消息替換null。所以,而不是如果我試圖做查詢本身。 – Hariharbalaji

+0

我已經想到了所有這些場景,然後只將IF()移動到SQL,因爲這兩個地方的行爲都是相同的 – Hariharbalaji

回答

16
SELECT COALESCE((SELECT empname FROM employee WHERE id = 100), 'Unavailable') 
FROM DUAL; 

你必須包裹SELECT到另一個SELECT或沒有行會被退回。沒有排的地方就沒有價值。

相關問題