You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL中正确排序物化路径?

解决SQL中字符串类型数值列的数值排序问题

你的Path列存储的是字符串格式的数值,直接使用ORDER BY Path会按照字典序排序(比如"11"会排在"2"前面),要实现按数值大小排序,需要先将列转换为数值类型再排序。

不同数据库的实现方式:

  • MySQL/MariaDB:

    SELECT Path
    FROM your_table
    ORDER BY CAST(Path AS DECIMAL) ASC;
    

    或者使用CONVERT函数:

    SELECT Path
    FROM your_table
    ORDER BY CONVERT(Path, DECIMAL) ASC;
    
  • PostgreSQL:

    SELECT Path
    FROM your_table
    ORDER BY Path::NUMERIC ASC;
    

    或者用CAST:

    SELECT Path
    FROM your_table
    ORDER BY CAST(Path AS NUMERIC) ASC;
    
  • SQL Server:

    SELECT Path
    FROM your_table
    ORDER BY CAST(Path AS DECIMAL(10,2)) ASC;
    
  • Oracle:

    SELECT Path
    FROM your_table
    ORDER BY TO_NUMBER(Path) ASC;
    

执行上述SQL后,就能得到你需要的数值升序排序结果:

Path
2
3.6
11
14
14.5
23

内容的提问来源于stack exchange,提问作者test13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:39:24