Sql update 在一个查询中基于多个条件更新多个字段

Sql update 在一个查询中基于多个条件更新多个字段,sql-update,Sql Update,我试图根据where子句中的3个不同条件更新表中的3个不同列。(我在另一个表中有更新的数据,因此我在主键上连接它们) 例如,如果我以前在field1中没有客户的值,但现在有了, 我应该能够更新“field1”列。同样,我想更新field2和field3列 我可以在一个Update语句中实现这一点 要更新一列,可以编写如下内容: Update tblCustomer SET tblCustomer.Order_Date = tblCustomerInfo.Order_Date FROM tblC

我试图根据where子句中的3个不同条件更新表中的3个不同列。(我在另一个表中有更新的数据,因此我在主键上连接它们)

例如,如果我以前在field1中没有客户的值,但现在有了, 我应该能够更新“field1”列。同样,我想更新field2和field3列

我可以在一个Update语句中实现这一点

要更新一列,可以编写如下内容:

Update tblCustomer 
SET tblCustomer.Order_Date = tblCustomerInfo.Order_Date
FROM tblCustomer 
LEFT JOIN tblCustomerInfo ON (tblCustomer.CustomerID = tblCustomerInfo.CustomerID)
WHERE tblCustomer.Order_Date <> tblCustomerInfo.Order_Date 
  AND tblCustomer.Order_Date is NULL;
更新TBL客户
设置tblCustomer.Order\u Date=tblCustomerInfo.Order\u Date
来自TBL客户
左键加入tblCustomerInfo ON(tblCustomer.CustomerID=tblCustomerInfo.CustomerID)
其中tblCustomer.Order\u日期tblCustomerInfo.Order\u日期
且tblCustomer.Order_Date为空;
根据不同的where条件在一次go中更新3个不同的列如何
(如果该列的数据以前丢失,现在可用)

您可以更新多个列

 UPDATE [t1]
  SET field1 = t2.field1,
      field2 = CASE WHEN <field 2 changed> THEN t2.field2 ELSE t1.field2 END,
      field3 = CASE WHEN t1.field3 <> t2.field3 THEN t2.field3 else t1.field3 END
  FROM <table1> as t1
  LEFT JOIN <table2> as t2 on t1.key1 = t2.key1
更新[t1]
设置field1=t2.field1,
field2=t2.field2 ELSE t1.field2结束时的情况,
field3=t1.field3 t2.field3然后t2.field3 else t1.field3结束时的情况
从as t1开始
在t1.key1=t2.key1上左连接为t2
UPDATE categories
    SET display_order = CASE id
        WHEN 1 THEN 3
        WHEN 2 THEN 4
        WHEN 3 THEN 5
    END,
    title = CASE id
        WHEN 1 THEN 'New Title 1'
        WHEN 2 THEN 'New Title 2'
        WHEN 3 THEN 'New Title 3'
    END
WHERE id IN (1,2,3)