oracle、mysql、postgresql 对 varchar 类型的数字排序不准解决办法

  • Post author:
  • Post category:mysql


如果字段的类型为 varchar 型,但是里面存储的是纯数字,怎么实现按照数字的大小来排序?



oracle & mysql

直接 order by 某些情况下会排序不准确:

select num from test order by num
select num from test order by (num + 0)

在这里插入图片描述

下面的方法对于mysql和oracle都适用:

order by 字段+0

order by 字段*1

等等都可以实现

在这里插入图片描述



postgresql

postgresql 将varchar类型转化为integer排序

在这里插入图片描述

转换成浮点型

select '111.344722222222'::FLOAT

或者

select CAST( '111.344722222222' AS FLOAT)



版权声明:本文为li1246994520原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。