我试图根据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;
如何根据不同的条件在一次执行中更新3个不同的列
(如果以前缺少该列的数据,则现在可用)
最佳答案
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)
关于sql-update - 在一个查询中基于多个条件更新多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359166/