sqlserver字符集中包含字母和数字的排序问题

sqlserver字符集中包含字母和数字的排序问题

注:此处只针对结果集中数据进行排序,关于字符集排序规则暂不不做深入研究(先挖个坑)。

参考:https://blog.csdn.net/poloyzhang/article/details/39077047

总结思路

  • 将字符集中的字母和数字分离开
  • 对字母进行排序
  • 对字符集进行排序,此处需注意,数字仍为字符串类型
    • 按照字符集的长度排序
    • 按照字符集的大小排序

实现

select A.tag,A.name from tableA as A
order by LEFT(A.tag,PATINDEX('%[^0-9]%',A.tag)),
LEN(A.tag),
A.tag
A.tag A.name
C2 C区
C3 C区
C10 C区
D2 D区
D3 D区
D10 D区
posted @ 2021-01-27 11:20  MuXuming  阅读(825)  评论(0)    收藏  举报