dkfr.net
当前位置:首页 >> sql中截取字符串中的数字,根据条件排序的问题,请... >>

sql中截取字符串中的数字,根据条件排序的问题,请...

select * from 表名 where code like '%[2013]%' order by cast(substring(code,charindex(']',code)+1,len(code)-charindex(']',code)) as int) desc 这样试试

假如表为test,name字段存放班级,代码如下: select id,name,substring_index(name, '班级',1) as num from test ORDER BY num asc

SELECT * FROM t3 ORDER BY CAST (LEFT(name,patindex('%[a-z,A-Z]%',right(name,len(name)-patindex('%[0-9]%',name)))) AS INT) ,SUBSTRING(NAME,patindex('%[a-z,A-Z]%',right(name,len(name)-patindex('%[0-9]%',name)+1)),1 ) ,CAST(RIGHT(...

你这个sort列肯定是非数值型的,所以他排序的时候会按照字符串排序方式;1开头的字符串排在前面,排完了,然后才开始排2开头的字符串,3、4、5往后面推; 如果你想要按照数字排序,先要把字符串转换成数字格式; 如果是sqlserver数据库的话, or...

Create Table T(id int,St Varchar(100)) Insert Into T Values(1,'魂牵梦萦复方丹参 a草叶魂牵梦萦')Insert Into T Values(2,'魂牵梦萦复方丹参 草叶a魂牵梦萦')Insert Into T Values(3,'魂牵梦萦复方丹参 草叶b魂牵梦萦')Insert Into T Values...

SELECT * FROM `users` ORDER BY LENGTH(username) asc 这是users表中根据username的长度排序的

在排序order by的时候,把你这个 to_char(字段) 一下就行,转成字符串排序就好了

很简单,因为你的id字段是字符型当然是以9开头最大,教你个方法,先将字符型转整形就可以了 select max(ont_id+0) from oa_sys.dbo.tb_tes

第一步:确定输出内容,你要的字段为name,数据结果为b,d,a,c ; 第二步:找规律,b、d的online为1;a、c的位说明是按online 降序;然后来看下 b 、d的online相同,viewnum为30和10,那么就是viewnum降序;如果a、c的viewnum也是降序那么规律就...

如果数字都是小于10的,可以直接order by,按照字符规则排序就是你想要的这个。 如果数字有两位以上的,这时候11会排在2的前面,如果想数字按照数字的规则排序,字母按照字母的规则排序,需要根据条件将数字和字母分别查询出来进行排序,然后使...

网站首页 | 网站地图
All rights reserved Powered by www.dkfr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com