2011-12-08 72 views
1

在sqlserver中,我寫了一個查詢,我使用「case」,但它給錯誤,這是我的情況。如何在sql server中寫入大小寫?

(case when sm.SegCode =0 then '' else sm.SegCode = 7 end) 

請幫幫我。

感謝所有給予迴應,實際上我有一個參數@id。現在我想檢查它是不是零我檢查條件sm.segcode否則,如果@id爲零,我不想檢查條件是sm.segcode = @id

+3

請發表您的完整的sql語句。 –

+0

在SSMS中將光標設置爲CASE,按F1,您將看到這篇文章http://msdn.microsoft.com/en-us/library/ms181765.aspx。 –

+1

T-SQL中的CASE只是一種返回不同值的方法 - 它不是**流控制語句,例如,您不能使用CASE來執行此代碼或該代碼。只是返回值... –

回答

2

有你表現出的語句兩個問題:

  • else sm.SegCode = 7
  • 的類型的空字符串的嘗試混合和INT

語法錯誤試試這個:

case when sm.SegCode = 0 then '' else '7' end 

當然,這部分是一個gue SS,因爲我不知道的結果設置爲一個空字符串或整數你正在努力實現的正是7

0

總是試圖從Case語句返回Same DATA TYPE價值,看來你的第一condistion返回VARCHARelse部分返回INT,這是不可能的,所以最好每個值轉換爲VARCHAR,所以7將在else聲明'7',感謝

(CASE 
    WHEN sm.SegCode = 0 THEN '' 
ELSE '7' END) 
相關問題