SQL SERVER 字符串按数字排序

来源:互联网 发布:手机装潢设计软件 编辑:程序博客网 时间:2024/04/26 15:05

需求是这样的:
数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序。

思路:
考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再把剩下的字符排序。

数据表是下面这样的:

这里写图片描述

LevelName就是那个数字和字母混合的字段。
我这个表里存的LevelName都是数字+单个字符的格式。于是可以把前面的部分转换为数字,按数字排,剩下的部分按字母排。

语句这样写:

SELECT * FROM dbo.LevelORDER BY CONVERT(INT, LEFT(LevelName, LEN(LevelName)-1)) ASC, RIGHT(LevelName, 1) DESC

查询结果:

这里写图片描述

PS:4B 比 4A 小。

0 0
原创粉丝点击