我的表格产品有attr:Id, discount_pct, price, number_of_sold
。
discount_pct
可以是null
。
如果discount_pct * price * number_of_sold
不为NULL,我正在尝试将select查询与discount_pct
求和,否则,求和price * number_of_sold
答案 0 :(得分:2)
这听起来像你想要的
SUM( coalesce( (1 - discount_pct/100) * price, price ) * number_of_sold )
假设discount_pct
是0到100之间的值(即20表示20%的折扣)。如果(1 - discount_pct/100) * price
为非NULL,discount_pct
将计算折扣价,如果discount_pct
为NULL,则计算空值。 coalesce
返回列表中的第一个非NULL值。因此,如果可以计算,则完整表达式返回折扣价,如果不能乘以销售数,则返回价格。