我想订一张桌子:
首先是Field1 = 3 然后通过Field2 DESC
我知道我不能写OrderBy Field1 = 3,Field2 DESC
那么我该如何实现呢?
要澄清:
假设我有一张书桌。我希望列出表格中的所有书籍。我希望1990年的书籍出现在顶部,其余的书籍按字母顺序排列。
答案 0 :(得分:7)
实际上,你可以写下你说不能的陈述。使用您的澄清示例:
SELECT * FROM Books ORDER BY (year = 1990) DESC, name
“year = 1990”对于那些年份为1990年的人来说将是“1”,所以那些将会排在最前面。
答案 1 :(得分:1)
这是TSQL而不是MySQL,但它应该给你一个想法......
(假设我理解你的问题......)
ORDER BY
CASE WHEN Field1 = 3 THEN 0 ELSE 1 END ASC,
Field2 DESC