gpt4 book ai didi

sql - 如何使用 ORDER BY 正确处理数字?

转载 作者:可可西里 更新时间:2023-11-01 07:24:14 25 4
gpt4 key购买 nike

我想从 mysql 表中获取按其中一个 varchar 列排序的数据。假设我有这样的查询:

SELECT name, model FROM vehicle ORDER BY model

问题是,对于像这样的“模型”值:“S 43”、“S 111”,顺序将是:

S 111
S 43

因为我想 ORDER BY 使用字母顺序规则,对吧?那么如何修改这个查询以获得“数字”订单呢?哪个“S 43”会在“S 111”之前?无需更改或向该表添加任何数据。

最佳答案

是这样的:

SELECT name, model 
FROM vehicle
ORDER BY CAST(TRIM(LEADING 'S ' FROM model) AS INTEGER)

请注意,按函数结果排序不是一个好的做法,因为它会产生动态的未索引结果,这可能会非常慢,尤其是在大型数据集上。

关于sql - 如何使用 ORDER BY 正确处理数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com