我正在W3School页面中尝试一个简单的案例查询。
http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_groupby_2
当我运行下面的查询时,我总是为所有的范围值“over”。如果价格低于500,则应显示“under”。
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)
由于price
列存在于Products表中,因此它正在使用该值
不能在同一select语句中引用列别名price
,需要重复price
计算
你还混合了两种大小写的表达方式
你有
case price when price <500
您应该使用
case when (o.Quantity* p.Price) < 500