我是sql新手,遇到了困难。如果我有一列a1,a2,a3…a1000当我按此列排序时,它显示为a1、a100、a2。。。我明白为什么。尝试: order by left(length(company.company_code),-1) ASC; 我试着用上面的方法来切断a,但是没有运气?有什么建议吗?
order by left(length(company.company_code),-1) ASC;
mjqavswn1#
下面是一个简单的方法:
order by length(company.company_code), company.company_code
它首先按字符串的长度排序,然后按字符串的其余部分排序。你也可以这样做:
order by cast(substr(company.company_code, 2, 10) as int)
这假设一个字母后的数字不超过9位。
1条答案
按热度按时间mjqavswn1#
下面是一个简单的方法:
它首先按字符串的长度排序,然后按字符串的其余部分排序。
你也可以这样做:
这假设一个字母后的数字不超过9位。