oracle 表中如何对按含有字母和数字的编号来进行排序

2024-11-18 12:44:21
推荐回答(5个)
回答(1):

排序的话,用order by来处理即可。

比如:

col

a123

a234

b999

b335

select * from tablename order by col;

结果就是

col

a123

a234

b335

b999


如果按倒序排列:

select * from tablename order by col desc;

结果就是

col

b999

b335

a234

a123

回答(2):

直接order by pro_d 是按字符串排序的,不能得到按数字大小的排序效果;
应该去掉前边的字符然后再排序: order by to_number(substr(pro_d, 4))

回答(3):

因为编号是按字符串类型存储的,排序时也是按照字符串比较来排序的,如果想按数字排序,必须先获取后面的数字并转换成整形再比较排序,order by to_number(substr(pro_d, 4))

回答(4):

按照了 PR01,PR010; PR02, PR020;只不过不是你要的效果
如果你的数据是PR01,PR02,PR03,PR04.....这样的效果应该是你要的
这个是数据本身的问题

回答(5):

在数据库中自定义函数随机生成字符串,然后更新数据库。
update 表 set 字段=dbo.gen_key() where 主键字段='值'