首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中按百分比排序- 100%已移至末尾

在 MySQL 中,如果你有一个包含百分比值的列,并且你希望按该列排序,但将 100% 的值移到末尾,你可以使用自定义的排序逻辑来实现这一点。

假设你有一个名为 sales 的表,包含以下列:

  • id: 唯一标识符
  • product: 产品名称
  • percentage: 百分比值

你希望按 percentage 列排序,但将 100% 的值移到末尾。

示例数据

假设你的 sales 表包含以下数据:

代码语言:javascript
复制
CREATE TABLE sales (
    id INT PRIMARY KEY,
    product VARCHAR(50),
    percentage DECIMAL(5,2)
);

INSERT INTO sales (id, product, percentage) VALUES
(1, 'Product A', 50.00),
(2, 'Product B', 75.00),
(3, 'Product C', 100.00),
(4, 'Product D', 25.00),
(5, 'Product E', 100.00);

自定义排序查询

你可以使用 CASE 语句来创建自定义的排序逻辑,将 100% 的值移到末尾:

代码语言:javascript
复制
SELECT
    id,
    product,
    percentage
FROM
    sales
ORDER BY
    CASE
        WHEN percentage = 100 THEN 1
        ELSE 0
    END,
    percentage;

解释

  1. CASE WHEN percentage = 100 THEN 1 ELSE 0 END:这个 CASE 语句为每一行生成一个排序键。如果 percentage 等于 100,则返回 1,否则返回 0。这样,所有 percentage 等于 100 的行将被排序到最后。
  2. percentage:在 CASE 语句之后,按 percentage 列进行正常排序。

结果

执行上述查询后,你将得到以下结果:

代码语言:javascript
复制
 id | product  | percentage
----+----------+------------
  4 | Product D|       25.00
  1 | Product A|       50.00
  2 | Product B|       75.00
  3 | Product C|      100.00
  5 | Product E|      100.00
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券