mshd.net
当前位置:首页 >> sql 多次排序问题 >>

sql 多次排序问题

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

select * from 表 order by convert(int,Right(类型列),1)), 时间列 desc 我首先排序的是类型列将他的右边开始第一个数取出来转成int型进行排序 之后排的时间 因为你要求T1比T2大我写的是降序~升序打asc

升序是 ASC,降序是 DESC select * FROM a ORDER BY m ASC,n DESC

很简单,直接在order by后面进行加就可以了: 升序: select * from stor order by (A+B+C+D) 降序: select * from stor order by (A+B+C+D) desc

由于你提供的数据比较特殊,故此以下俩种方法皆可 (1)双重排序 select * from table order by date2,data1; (2)先分组再排序 select * from table group by data2,order by data1;

ORDER BY cast(你的字段名 as int) 这里的原因是因为你的那个字段虽然存储了数字值,但是它是一个字符型 而字符型的 '2' 比 '11'要大 因为是从第一个字母开始比其的

select * from table where id in (18000,29938,1146,42718,1358) order by decode(id,'18000',1,'29938',2,'1146',3,'42718',4,'1358',5);

将字段依次写在order by 后面即可 , 中间用逗号隔开。 view plaincopy to clipboardprint?select * from 表 order by time , name select * from 表 order by time asc , name asc select * from 表 order by time desc , name desc select * fr...

这个问题的原因是你的time 不是datetime 应该是varchar型. 改成这个. sql="select id,title,content,class,img,time from info order by cast(time as datetime) desc" 就行了

很可能是你排序依据的列实际类型为varchar,但是里面存储的是数字,字符的排序比较与数字是不同的 可以在排序的时候将类型转换成int

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