我可以知道,是否有任何替代方法或簡短的方法來撰寫case如下所示的此陳述句:
case
when p.our_price IS NULL OR p.our_price = 0
then p.sales_price
else p.our_price
end as sales_price
我嘗試使用內置功能的mysql,如下ifnull所示:
ifnull(p.our_price,p.sales_price)
但這對我不起作用。
uj5u.com熱心網友回復:
您可以堅持使用CASE運算式,但使用COALESCE它來使其更簡潔:
CASE COALESCE(p.our_price, 0)
WHEN 0 THEN p.sales_price ELSE p.our_price END AS sales_price
或者,使用以下IF()功能:
IF(COALESCE(p.our_price, 0) = 0, p.sales_price, p.our_price)
作為一個長期使用 MySQL 的用戶,我經常發現自己使用的CASE更多,IF()因為前者允許ELSE完全省略條件。 IF()另一方面,總是需要一個明確的 else 值。
uj5u.com熱心網友回復:
IF(p.our_price IS NULL OR p.our_price = 0, p.sales_price, p.our_price)
第一個引數是條件,第二個和第三個是條件為真或假的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/457828.html
下一篇:如何將多列提取為單列
