SQL 中 CASE 内的 SUM

SUM inside CASE in SQL

select product_class_code, product_id, product_desc, product_price, price as product_price
CASE product_class_code
     WHEN 2050 THEN (price = product_price + 2000)
     WHEN 2051 THEN (price = product_price + 500)
     WHEN 2052 THEN (price = product_price + 600)
ELSE price as product_price
END
from PRODUCT
order by product_class_code;'

product_class_code

执行完成但出现错误。 结果:

near "CASE": syntax error At line 1: select product_class_code, product_id, product_desc, product_price, price as product_price CASE

此代码无效。

写一个查询来显示产品详细信息(product_class_code、product_id、product_desc、product_price,按照以下条件并按降序排列类别:a.如果类别是 2050,则将价格提高 2000 b。如果类别是 2051,则将价格提高 500 c。如果类别是2052,加价600

case里面的赋值是错误的。删除它,你应该没问题:

CASE product_class_code
     WHEN 2050 THEN (price + 2000)
     WHEN 2051 THEN (price + 500)
     WHEN 2052 THEN (price + 600)
ELSE price
END AS product_price

或者,因为无论如何你都需要 price,你可以从 case 中提取它,然后只使用 case 作为你需要添加的额外内容:

price + CASE product_class_code
             WHEN 2050 THEN 2000
             WHEN 2051 THEN 500
             WHEN 2052 THEN 600
             ELSE 0 
        END
AS product_price