2014-12-19 151 views
1

我有表产品与attr:Id, discount_pct, price, number_of_sold。可以是null从列空选择另一个选择

我试图让选择查询总结discount_pct * price * number_of_sold,如果discount_pct不为空,否则,总和price * number_of_sold

回答

2

这听起来像你想

SUM(coalesce((1 - discount_pct/100) * price, price) * number_of_sold) 

假设discount_pct是0和之间的值100(即20表示20%的折扣)。如果discount_pct为非NULL或为NULL,则(1 - discount_pct/100) * price将计算折扣价格。​​3210返回列表中的第一个非NULL值。因此,如果可以计算出完整的表达式,则返回折扣价格;如果它不能乘以销售数量,则返回价格。

+0

令人惊叹。谢谢 – ivanz 2014-12-19 02:57:28