我有一张产品表,其中有一列价格和库存。
我希望产品按以下规则排序:
- 所有 price = 0 的产品排到底;
- 然后按价格对产品进行排序:
- 如果库存大于或等于 100,则按价格 ASC 排序;
- 否则它们按股票 DESC 排序,如果有平局则按价格 ASC 排序。
到目前为止,当产品库存超过 100 件时,我想出的price = 0, stock >= 100 DESC, price ASC, stock DESC
方法似乎可以正常工作,但在没有库存时会分崩离析。
SELECT *
FROM products
ORDER BY price = 0, stock >= 100 DESC, price ASC, stock DESC
我怎样才能使这项工作?
我认为这会起作用 - 尽管它相当模糊:
更清楚: