2009-12-11 569 views
0

我使用下面的語句來創建視圖中的一個比率計算:MySQL View:如何將計算字段的默認值設置爲0?

輪(。((SurveysRejectedAsAdvertising/SurveysResponses)* 100),0)AS PercentageAdvertising

基本上,我把數對某個問題(在這種情況下,被認爲是廣告)的回覆數量除以回覆的總數。最後,我列出了五個可能的調查回答(「是否廣告?」,「它是無聊的?」等)的百分比。

這工作完美,但有一件事我想調整。當響應類型(例如廣告)沒有任何投票時,我的計算字段會收到一個NULL值。

定義我的視圖時,如何指定默認值0?

謝謝。

回答

1

你需要一個​​3210在那裏。它選擇的第一個非NULL參數,所以你需要的東西,如:

coalesce(
    round(
     ((Surveys.RejectedAsAdvertising/Surveys.Responses) * 100) 
     ,0) 
    ,0) 
    AS PercentageAdvertising 

然後,當輪的結果是NULL,它會給你零代替。

+0

謝謝您的明確的答案。我很感激。 – 2009-12-12 04:02:37

2

COALESCE是首選的方法,因爲它是一種ANSI參數爲空時處理評估的標準方式。作爲ANSI,Oracle,SQL Server,Postgres等支持相同的語法,使查詢更容易在需要的數據庫之間移植。

COALESCE(round(((Surveys.RejectedAsAdvertising/Surveys.Responses) * 100),0) AS PercentageAdvertising, 0) 

IFNULL是MySQL特定的語法:

IFNULL(round(((Surveys.RejectedAsAdvertising/Surveys.Responses) * 100),0) AS PercentageAdvertising, 0) 
+0

謝謝。正是我需要的。 – 2009-12-12 04:01:51

相關問題