使用case表达式sql更新列

时间:2013-05-28 08:50:18

标签: sql sql-server-2008

我想仅在列值不为空时设置列值。

这是样本

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

2 个答案:

答案 0 :(得分:3)

您必须将更新后的列设置如下:

Declare @Temp Varchar(20)

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

答案 1 :(得分:0)

您可以检查WHERE中的变量,当它变为空白时根本不更新

Declare @Temp Varchar(20)

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