我有3列的数据库。 Name, Stock, Backorders
我应该使用什么查询来获得像这样的行:
所有行应按字母顺序排序,但第一行应包含具有stock > 1
的产品,第二行应具有stock = 0
但具有backorders = 1
的产品,最后是具有库存和backorders = 0
答案 0 :(得分:0)
将英语翻译为SQL,查询顺序应包括:
ORDER BY
CASE
WHEN stock > 1 THEN 0
WHEN stock = 0 AND backorders > 1 THEN 1
ELSE 2
END
如果您希望按字母顺序将其分类为子集,请在END后面放置另一个子句(使用逗号分隔它们),例如:
ORDER BY
CASE
WHEN stock > 1 THEN 0
WHEN stock = 0 AND backorders > 1 THEN 1
ELSE 2
END,
productname
事物将首先按照您给出的数字规则进行排序,然后按照产品名称进行排序(将其更改为您希望按字母顺序对名称进行排序的任何列)
库存或缺货订单可以小于0吗?找出它们应该适合的排序顺序。.目前,ELSE捕获了其他所有内容。可以更改