更新具有来自另一列的条件的列

时间:2014-07-25 01:22:43

标签: sql sql-server

我正在尝试根据另一列的条件更新列。 像这样的东西, >

  

服装app | SPV id | spv app

    | test     |    

    | test     |  

    |          |     

    |          | 

预期:

  

服装App | Spv id | SPV App

     

批准|测试|

     

批准|测试|

     

批准| |批准

     

批准| |批准

因此,当第2列不为null时,则更新第1列,如果第2列为null,则更新第1列和第3列。

这是我的代码:

        strcommand = "update tbl_Approve set [Attire App] = 'Approved', [Attire Date] = @ADate, [SPV app] = case when [spv id] is null then 'Approved' END where [attire app] is null"

在视觉上我没有添加另一个名为[attire date]的列,假设视觉中有该列。 但它不起作用,它只是更新第1列...... 你对这个问题有什么建议吗?

提前感谢。

1 个答案:

答案 0 :(得分:1)

我无法关注您的代码,因为它使用了描述中的不同列名。但是,您想要的逻辑是:

update yourtable
    set col1 = @COL1,
        col3 = (case when col2 = '' or col2 is null then @COL3 else col3 end);

请注意else声明中的case。这会将列的值设置为自身 - 因此值不会更改。