SQLSERVER字符串按数字排序
需求是这样的:
数据库表⾥⾯有⼀个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序。
思路:
考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再把剩下的字符排序。
数据表是下⾯这样的:
LevelName就是那个数字和字母混合的字段。
字符串是什么字段类型我这个表⾥存的LevelName都是数字+单个字符的格式。于是可以把前⾯的部分转换为数字,按数字排,剩下的部分按字母排。语句这样写:
SELECT * FROM dbo.Level
ORDER BY CONVERT(INT, LEFT(LevelName, LEN(LevelName)-1)) ASC, RIGHT(LevelName, 1) DESC
查询结果:
PS:4B ⽐ 4A ⼩。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。