簡體   English   中英

如何在sql server中編寫案例?

[英]How to write case in sql server?

在sqlserver中,我寫了一個查詢,我使用“case”但是它給出了錯誤,這是我的情況。

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

請幫我。

感謝所有人給予回復,實際上我有一個參數@id 現在我想檢查一下它是否不為零,我要檢查條件sm.segcode否則@id為零,那么我就不想檢查條件為sm.segcode = @id

您顯示的語句有兩個問題:

  • else sm.SegCode = 7的句法錯誤
  • 嘗試將類型與空字符串和int混合

試試這個:

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

當然這是部分猜測,因為我不確定你要通過將結果設置為空字符串或整數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值,似乎您的第一個條件返回VARCHARelse節返回INT ,這是不可能的,因此最好將每個值轉換為VARCHAR ,所以在else語句中將7設為'7' ,謝謝

(CASE
    WHEN sm.SegCode = 0 THEN '' 
ELSE '7' END)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM