mysql sql case语句为不同的条件赋予相同的值

时间:2014-12-01 18:02:37

标签: mysql sql

我正在W3School页面尝试一个简单的案例查询。

http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_groupby_2

当我运行以下查询时,我会继续为所有范围值“超过”。如果价格低于500,它应显示“低于”。

SELECT 
(o.Quantity* p.Price) as price,
case price when price< 500 
           then 'under' 
           else 'over' 
           end as range 
 FROM OrderDetails o 
 inner join Products p 
 on (o.ProductID = p.ProductID)

1 个答案:

答案 0 :(得分:1)

产品表中存在AS price列,它正在使用该值

您无法在同一个select语句中引用列别名price,您需要重复price计算

您还混合了两种案例表达

你有

case price when price <500

你应该使用

case when (o.Quantity* p.Price) < 500