wmjy.net
当前位置:首页 >> sql数据库数字排序问题 >>

sql数据库数字排序问题

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

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(...

SELECT TOP 10 FROM 表名 ORDER BY 排序列 DESC; SQL的执行顺序先按照你的要求排序,然后才返回查询的内容。例如有一个名为ID自动增长的列,表中有100条数据,列的值得分别是1、2、3、4………9、99、100。那么查询加了DESC你得到的是91到100条,就...

因为你这是字符串,如果想按照后面的数字排序的话就要单列出来,比如: select c1,cast(SUBSTRING(c1,2,len(c1)-1) as int ) from (select 'D1' c1 UNIONselect 'D2' UNIONselect 'D10' UNIONselect 'D12' UNIONselect 'D100' UNIONselect 'D101...

将字段依次写在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...

select projectno from dual order by substring(projectno ,1,2) asc ,substring(projectno ,3,6) asc ,substring(projectno ,9,2) asc

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

比如:select 学号,日期row_number() over(partition by 学号 order by 学号) from A表.

加上 order by [列名] [方法] 如 order by col1 desc desc是降序 asc是升序

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);

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