【发布时间】:2015-03-11 14:39:57
【问题描述】:
我的 SQL 查询中的 Ordering 存在一些问题。
我在“products”表中有 2 个字段(“price”和“in_stock”)。我想要做的是按这两个字段对我的查询结果进行排序 - 按“in_stock”而不是“price”。但是(!)一件重要的事情是将'in_stock'订购为布尔值。例如表格是:
Name | Price | in_stock |
----------------------------------|
Product1 | 100 | 9 |
Product2 | 200 | 0 |
Product3 | 500 | 4 |
Product4 | 500 | 0 |
Product5 | 300 | 2 |
所以正确的订单结果是:
Product1 - 100, 9
Product5 - 300, 2
Product3 - 500, 4
Product2 - 200, 0
Product4 - 500, 0
第一步 - 按库存订购产品 - 如果产品缺货,则必须在列表末尾。按价格对产品进行排序后 - 从低到高。
【问题讨论】:
-
排序为布尔值你怎么看?您需要按整数对 in_stock 进行排序,正如我在您的“正确订单结果”中看到的那样
-
Stocks > 0 首先按价格升序排序... Stocks = 0 最后按价格排序。非常直接的请求...