我一直试图理解在MySQL中这样做,但即使在阅读了几个教程和手册之后也不得不承认失败。任何帮助将不胜感激。
我有三个十进制类型的字段(用于货币)。这些是'base_price','discounted_price'和'extras_price'。
我正在尝试创建完成以下伪代码所需的MYSQL:
if (discounted_price is not null or 0) {
total_price = discounted_price + extras_price
} else {
total_price = base_price + extras_price
}
值得注意的是,这将用于为CakePHP 2创建虚拟字段。*感谢您提供的任何帮助。
答案 0 :(得分:6)
这是你在找什么?
select (case when discounted_price is not null and discounted_price <> 0
then discounted_price + extras_price
else base_price + extras_price
end) as total_price
from t;
顺便说一句,第一个条件在SQL中是多余的。你可以这样写:
select ((case when discounted_price <> 0 then discounted_price else base_price end) +
extras_price) as total_price
from t;