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区 |

浙公网安备 33010602011771号