2013-05-28 73 views
3

我要設置列值,只有當它不爲空。更新列使用CASE表達式SQL

下面是示例

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = 
Case When @Temp <> '' Then @Temp Else /* Dont SET Value */ End 
Where Code=1 

Else部分寫什麼?

我有多個列更新並希望在只有單個列申請條件

DB:SQL SERVER 2008

+1

http://stackoverflow.com /問題/ 14762374 /怎麼辦,我使用的情況下,在-SQL換我的,例如這可能幫助你 – gasroot

回答

3

你必須設置如下更新列:

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = Case When @Temp <> '' Then @Temp 
        Else ColValue 
       End 
Where Code=1 
0

你可以檢查你的變量在哪裏不更新,當它是空白的

Declare @Temp Varchar(20) 

Update Logins 
Set ColValue = @Temp 
Where Code=1 AND @Temp <> '' 
+0

我有多個列更新並希望在只有單個列申請條件 – Shaggy

+1

@SagarDumbre好了,這種情況下,使用帶有'ELSE ColValue'其他解決方案CASE :) –