我有这个问题。MySQL数据库中的一列的数据如下:1.10100102102010221023102410251025A1026A。。.
我用这样的查询获得了正确的数字排序:
SELECT DISTINCT LPAD(ubicazione, 8, '0') FROM t_ubicazione ORDER BY LPAD(ubicazione, 8, '0') ASC;
给我这个结果:
00000001 00000017 00000018 00000019 0000001A 0000001B 0000001M 0000001S 00000021 00000022
我的问题是0000001A应该在00000001之后,所以正确的顺序应该是:
00000001
0000001A
0000001B
0000001M
0000001S
00000017
00000018
00000019
00000021
00000022
我怎样才能得到这个结果?
您可以通过隐式转换ubicazione + 0
将列的数字部分作为整数进行排序,然后按ubicazione
:
SELECT ubicazione
FROM t_ubicazione
ORDER BY ubicazione + 0, ubicazione;
请参阅演示。
SELECT ubicazione自t_ubicazioneCAST订购(ubicazione为未签名(,ubicazione