SQLSERVER的英文+数字排序规则(亲自实践)

时间:2021-11-06 00:47:54

数据库中有个字段,类型是nchar,内容格式:KPI + 数字,如下:

KPI1
KPI10
KPI11
KPI2
KPI3
KPI4
KPI5
KPI6
KPI7
KPI8
KPI9

排序的时候,希望能够按照数字由小到大排序,

只需要在查询SQL追加以下order 命令即可:

ORDER BY CONVERT(int,SUBSTRING(kpiCode,4, LEN (kpiCode)-3)) ASC

简单地说,就是截取内容中的数字,然后转换为int类型排序

排序结果如下:

KPI1
KPI2
KPI3
KPI4
KPI5
KPI6
KPI7
KPI8
KPI9
KPI10
KPI11