Я пытаюсь выполнить то, что я считаю, очень простой случай для обновления SQL для двух различных столбца, основываясь на выборе:SQL Case Update для двух различных колонок на основе выбор
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' и использовать' , 'вместо этого. –
вы должны использовать только один «набор», например: таблица обновлений col1 = a, col2 = b, col3 = c ... –
Woops. Моя ошибка при создании простого примера. Исправлено: – l46kok