实例:

CREATE TABLE properties (
id INT AUTO_INCREMENT PRIMARY KEY,
price DECIMAL(10, 2) NOT NULL
);

INSERT INTO properties (price) VALUES
(100.50),
(200.75),
(0.0),
(300.00),
(150.25);

方法:

使用 CASE 语句在 ORDER BY 中对 0.0 的值进行特殊处理:

SELECT * FROM properties
ORDER BY
CASE
WHEN price = 0.0 THEN 1
ELSE 0
END,
price;

解释:

  • CASE WHEN price = 0.0 THEN 1 ELSE 0 END: 这个 CASE 语句在 price 为 0.0 时返回 1,否则返回 0。这样,所有的 0.0 值会被排序在最后。
  • price: 在 CASE 语句之后,按价格从小到大排序。

结果:

id | price
—+——-
1 | 100.50
5 | 150.25
2 | 200.75
4 | 300.00
3 | 0.00

作者 admin

百度广告效果展示