需求是这样的:
数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序。
思路:
考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再把剩下的字符排序。
数据表是下面这样的:
LevelName就是那个数字和字母混合的字段。
我这个表里存的LevelName都是数字+单个字符的格式。于是可以把前面的部分转换为数字,按数字排,剩下的部分按字母排。
语句这样写:
SELECT * FROM dbo.Level
ORDER BY CONVERT(INT, LEFT(LevelName, LEN(LevelName)-1)) ASC, RIGHT(LevelName, 1) DESC
查询结果:
PS:4B 比 4A 小。
本文介绍了一种对数据库中数字和字母混合字段进行排序的方法。通过将数字部分转换为整数并按数字升序排列,同时将剩余的字符部分按字母降序排列,实现了特定的数据排序需求。
3392

被折叠的 条评论
为什么被折叠?



