MySQL字母数字字符串的ORDER,优先于数字,然后尾随非数字字符



我有这个问题。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

相关内容

最新更新