2013-05-28 127 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 :) –