我正在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)
答案 0 :(得分:1)
产品表中存在AS price
列,它正在使用该值
您无法在同一个select语句中引用列别名price
,您需要重复price
计算
您还混合了两种案例表达
你有
case price when price <500
你应该使用
case when (o.Quantity* p.Price) < 500