我想先按新鲜度对产品进行排序,即按添加日期排序,但有库存的产品应排在缺货产品之前。我有一列“库存”,用于跟踪我有多少库存。
SELECT * FROM products ORDER BY stock DESC, date_added DESC
这个简单的查询不起作用,因为它会先按库存排序,如果 2 个产品的库存编号相同,则按日期排序。我需要一种方法将库存转换为两个数字 1(有库存)和 0(无库存),然后按日期排序。
这能做到吗?
我想先按新鲜度对产品进行排序,即按添加日期排序,但有库存的产品应排在缺货产品之前。我有一列“库存”,用于跟踪我有多少库存。
SELECT * FROM products ORDER BY stock DESC, date_added DESC
这个简单的查询不起作用,因为它会先按库存排序,如果 2 个产品的库存编号相同,则按日期排序。我需要一种方法将库存转换为两个数字 1(有库存)和 0(无库存),然后按日期排序。
这能做到吗?
你可以做这样的事情:
CASE WHEN stock > 0 THEN 1 ELSE 0 END DESC
将确保所有有库存的产品排在第一位(1 > 0)date_added DESC
将确保较新的内容首先出现