Mysql SQL-a1、a2、a3、a4…a101的函数顺序

Mysql SQL-a1、a2、a3、a4…a101的函数顺序,mysql,sql,Mysql,Sql,我是SQL新手,遇到了困难 如果我有一列A1,A2,A3…A1000 当我按此列排序时,它显示为A1、A100、A2。。。我明白为什么 尝试:左订单(长度(公司代码),-1)ASC 我试图用上面的方法切断A,但没有运气 有什么建议吗?这里有一个简单的方法: order by length(company.company_code), company.company_code 该命令首先按字符串的长度排序,然后按字符串的其余部分排序 你也可以这样做: order by cast(substr(c

我是SQL新手,遇到了困难

如果我有一列A1,A2,A3…A1000

当我按此列排序时,它显示为A1、A100、A2。。。我明白为什么

尝试:
左订单(长度(公司代码),-1)ASC

我试图用上面的方法切断A,但没有运气


有什么建议吗?

这里有一个简单的方法:

order by length(company.company_code), company.company_code
该命令首先按字符串的长度排序,然后按字符串的其余部分排序

你也可以这样做:

order by cast(substr(company.company_code, 2, 10) as int)

这假设一个字母后面的数字不超过9位。

这里有一个简单的方法:

order by length(company.company_code), company.company_code
该命令首先按字符串的长度排序,然后按字符串的其余部分排序

你也可以这样做:

order by cast(substr(company.company_code, 2, 10) as int)

这假设一个字母后面的数字不超过9位。

您使用的是哪种dbms?也许您可以使用数字敏感排序规则。哪个数据库系统(请添加合适的标记)有负数?一直都是A,仅此而已?您需要自然排序的一般解决方案吗?或者仅仅是这个例子?好吧,我想你已经注意到了:当一列中有数据并且你对其中的一部分感兴趣时,这表明你可能应该有单独的列来代替(一个代表字母,一个代表数字)。你使用的是哪种数据库管理系统?也许您可以使用数字敏感排序规则。哪个数据库系统(请添加合适的标记)有负数?一直都是A,仅此而已?您需要自然排序的一般解决方案吗?或者仅仅是这个例子?好吧,我想你已经注意到了:当一列中有数据并且你对其中的一部分感兴趣时,这表明你可能应该有单独的列(一列代表字母,一列代表数字)。啊,太棒了!所以它是按长度排序的,即A1=2,A100=3,然后按公司代码排序。简单但天才!啊,太好了!所以它是按长度排序的,即A1=2,A100=3,然后按公司代码排序。简单但天才!