需求是这样的: 数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序. 思路: 考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再把剩下的字符排序. 数据表是下面这样的: LevelName就是那个数字和字母混合的字段. 我这个表里存的LevelName都是数字+单个字符的格式.于是可以把前面的部分转换为数字,按数字排,剩下的部分按字母排. 语句这样写: SELECT * FROM dbo.Level ORDER BY CON
SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID + 1); mysql将字符串字段转为数字排序或比大小 2017年09月17日 01:36:31 阅读数:6566 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/superit401/article/details/7800796
# 给三个数字排序# 方法一def sort_d(a,b,c): if a>b: a,b=b,a # print (a,b) if b>c: b,c=c,b if a>b: a,b=b,a return a,b,c print(sort_d(1,2,3))print(sort_d(11,2,3))print(sort_d(12,2,-13)) 第二种方法: def sort_new(a,b,c): if a>b: a,b=b,a if b>c: b,c=c,b if a>
表数据: 按名称排序 并不能得到一二三四五六的顺序 select * from LiWei order by name 找到中文数字在'一二三四五六七八九十'的位置 select id,name,SUBSTRING(name,2,1) as 中文数字,charindex(SUBSTRING(name,2,1),'一二三四五六七八九十') as 中文数字所在位置 from LiWei 按中文所在位置排序 select * from LiWei order by charindex(SUBSTRIN
应用于B1-1,B1-2,B10-1,B11-1 sqlserver肯定不能按照字符串进行排序,需要进行处理一番: select CONVERT(varchar, LEFT(code,1)),convert(int, RIGHT(Replace(code,'-',''), LEN(code)-2)) from xxx a where 1 = 1 order by CONVERT(varchar, LEFT(code,1)) ASC, convert(int, RIGHT(Replace(code
今天在转换数据时,遇到了一个主键排序的问题.字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着按数字规则排序. 但发现to_number总是报错,就想着里面应该是有字符存在.后来使用了正则关系式,问题解决. 以下是正则关系式的两种用法,记录下来. 方法一: select * from xtyhxx order by to_number(translate(yhid, '0123456789.' || yhid, '0123456789.')) asc nulls last