【发布时间】:2013-06-05 09:57:13
【问题描述】:
我想在特定条件下按折扣对产品进行排序
ORDER BY
CASE WHEN @OrderBy = 0
THEN table.id END ASC,
CASE WHEN @Orderby = 2
THEN table.id END ASC,
我想做类似下面的事情,因为我在表格中没有折扣列
CASE WHEN @OrderBy = 4
THEN (100-((table.price/table.oldprice)*100) as discount END ASC
但它会引发错误 - 我如何按折扣排序?
【问题讨论】:
-
它抛出了什么错误?
-
删除
as discount。它完全位于错误的位置(在表达式内部),并且您不能为order by中的表达式添加别名,因为它没有意义。 -
as 附近的语法不正确
-
我作为折扣删除,但在接近尾声时给出错误
-
计算括号。
标签: sql sql-server