在sqlserver中,我寫了一個查詢,我使用「case」,但它給錯誤,這是我的情況。如何在sql server中寫入大小寫?
(case when sm.SegCode =0 then '' else sm.SegCode = 7 end)
請幫幫我。
感謝所有給予迴應,實際上我有一個參數@id
。現在我想檢查它是不是零我檢查條件sm.segcode
否則,如果@id
爲零,我不想檢查條件是sm.segcode = @id
。
在sqlserver中,我寫了一個查詢,我使用「case」,但它給錯誤,這是我的情況。如何在sql server中寫入大小寫?
(case when sm.SegCode =0 then '' else sm.SegCode = 7 end)
請幫幫我。
感謝所有給予迴應,實際上我有一個參數@id
。現在我想檢查它是不是零我檢查條件sm.segcode
否則,如果@id
爲零,我不想檢查條件是sm.segcode = @id
。
有你表現出的語句兩個問題:
else sm.SegCode = 7
語法錯誤試試這個:
case when sm.SegCode = 0 then '' else '7' end
當然,這部分是一個gue SS,因爲我不知道的結果設置爲一個空字符串或整數你正在努力實現的正是7
這將是語法正確:
case sm.SegCode when '0' then '' else '7' end
或
case sm.SegCode when 0 then NULL else 7 end
如果列允許NULL的是
你可以看到更多的情況下,當文檔中:http://msdn.microsoft.com/en-us/library/ms181765.aspx
總是試圖從Case
語句返回Same DATA TYPE
價值,看來你的第一condistion返回VARCHAR
而else
部分返回INT
,這是不可能的,所以最好每個值轉換爲VARCHAR
,所以7將在else
聲明'7'
,感謝
(CASE
WHEN sm.SegCode = 0 THEN ''
ELSE '7' END)
請發表您的完整的sql語句。 –
在SSMS中將光標設置爲CASE,按F1,您將看到這篇文章http://msdn.microsoft.com/en-us/library/ms181765.aspx。 –
T-SQL中的CASE只是一種返回不同值的方法 - 它不是**流控制語句,例如,您不能使用CASE來執行此代碼或該代碼。只是返回值... –