2014-12-19 222 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