sql语句排序问题

image.png请问各位,这个超期我用的数据库varchar形式,但是现在排序总是乱的,上面的语句有什么问题么

FineReport 不辛苦命苦 发布于 2023-9-12 23:58
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
zsh331Lv8专家互助
发布于2023-9-13 00:16

…… order by 超期*1 desc 

----------

-- 怎么能用“超期”长度排序呢,原理:就是转换成数值(浮点型)后,再降序处理;

  • 不辛苦命苦 不辛苦命苦(提问者) 好像还是不行大佬,转换之后还是这样
    2023-09-13 00:21 
  • zsh331 zsh331 回复 不辛苦命苦(提问者) - -#,在你没有写错(逻辑正确)的情况下,如果这种转换方法不行,根据使用的数据库类型选择对应的转换(字符串转数值型)函数处理即可。比如sqlserver对应的cast()或convert()函数等。
    2023-09-13 00:43 
最佳回答
1
LalaLv5见习互助
发布于2023-9-13 09:05

你想要的是什么排序?你代码用的是"超期"的长度,如果你要按大小排序就不要用len()函数,转化为数值类型再排序

最佳回答
0
泽泽木木夕Lv3见习互助
发布于2023-9-13 12:43

CONVERT(column_name, FLOAT)

CAST(column_name AS FLOAT)

使用这两个方法其一,对数据进行转换后再排序

  • 4关注人数
  • 269浏览人数
  • 最后回答于:2023-9-13 12:43
    请选择关闭问题的原因
    确定 取消
    返回顶部