我试图完成什么,我相信基于选择一个非常简单的情况下更新SQL两个不同的列:SQL案例更新两个不同的列基础上选择
PROD_TB
:
Product_Code Reg_Price Sale_Price
A 1000 2000
PRICE_TB
:
Product_Code Type Price
A REG 3000
A SALE 4000
期望的更新结果:
PROD_TB
:
Product_Code Reg_Price Sale_Price
A 3000 4000
我尝试:
UPDATE PROD_TB
SET Reg_Price = CASE
WHEN PRICE_TB.Type = 'REG'
THEN PRICE_TB.Price
ELSE Reg_Price
END,
Sale_Price = CASE
WHEN PRICE_TB.Type = 'SALE'
THEN PRICE_TB.Price
ELSE Sale_Price
END
FROM
PROD_TB
JOIN
PRICE_TB ON PROD_TB.PRODUCT_CODE = PRICE_TB.PRODUCT_CODE
运行上面的SQL仅更新正常价格,而不是销售价格。 SQL不支持这些类型的更新查询吗?还是我犯了一个基本的错误?
您需要删除第二个'set'和使用' ,而不是那个。 – 2015-02-09 08:54:20
你应该只使用一个“set”,比如:update table set col1 = a,col2 = b,col3 = c ... – 2015-02-09 08:54:22
Woops。我创建简单例子的错误。修正了 – l46kok 2015-02-09 08:55:00