2014-07-05 65 views
1

我有一個名爲compositeRate的列,它是一個小數(10,2)數據類型。我正在寫Select語句,如果compositeRate爲0.00 應該返回空字符串但是我得到此錯誤: Msg 8114,級別16,狀態5,行1 將數據類型varchar轉換爲數字時出錯。SQL Server轉換爲Case語句

這是我的case語句

select CASE WHEN compositeRate = 0.00 THEN '' else compositeRate from table 

可否請你讓我知道我應該寫在我的case語句轉換?

回答

4

您需要compositeRate轉換爲字符串在else部分:

SELECT CASE 
      WHEN compositeRate = 0.00 THEN CAST('' AS Varchar(20)) 
      ELSE CAST(compositeRate AS VARCHAR(20)) 
     END   AS compositeRate 
    FROM table 

或使用CONVERT用適當的值。

現在你有一個CASE表達式,它返回一個字符串或一個數字,並且你必須決定返回哪個類型。一個CASE表達式必須返回一個類型。