我有这套规则来对MySQL和MySQL中的结果进行排序。 SQL服务器:
qty
排序 - 从最高到最低storage
排序,并且首先放2,而不是
值> 2,而不是< 2 price
- 从最低到
最高我写了以下条款:
ORDER BY table.qty DESC
ORDER BY FIELD (table.storage, =2, >2, <2)
ORDER BY table.price ASC
从数据中结合对我来说意味着:
qty,storage,price
0,0,0
1,1,10
1,2,22
1,3,10
2,3,10
1,2,9
我会得到:
qty,storage,price
2,3,10
1,2,9
1,2,22
1,1,10
1,3,10
0,0,0
我需要帮助两件事:
SQLSTATE [42000]:语法错误或访问冲突:1064您有 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本,用于在&#39;&gt; 2,&lt; 2)
附近使用正确的语法
我不知道如何真正做到这一点,但让我们按照伪查询说明它:
SELECT
*
FROM
table
ORDER BY
table.qty DESC
AND
ORDER BY FIELD (
table.storage, =2, >2, <2
)
AND
ORDER BY
table.price ASC
答案 0 :(得分:2)
对于MSSQLServer,您可以使用
SELECT
*
FROM
table
ORDER BY
table.qty DESC,
CASE
WHEN table.storage = 2 THEN 1
WHEN table.storage > 2 THEN 2
WHEN table.storage < 2 THEN 3
END ASC,
table.price ASC