A. sql数据排序
最简单的方法是增加一个置顶字段,每个公司只有唯一一个。然后先按置顶字段排序,再按时间排序。
select * from company,proct
where company.id = proct.company_id
order by proct.ding ,datetime
如果非要在一个query里解决。
select count(*),* from company,proct
where company.id = proct.company_id
group by company.id
union
select 1,* from company,proct
where company.id = proct.company_id
and proct.id not in (
select proct.id from (select count(*),* from company,proct
where company.id = proct.company_id
group by company.id))
order by datetime
但是这样的效率非常差。
B. 如何对sql检索出的数据进行多列排序
SQL多列排序可以在ORDER BY 子句里列出多个列进行排序,列与列之间用逗号隔离,标注关键字ASC为升序排序、DESC为降序排序,省略升/降排序关键字则默认为升序排序。排序字段列表中越靠前的字段其排序优先级别越高。请注意对SQL语句除了对列实施排序外,还可以对基于列的计算表达式实施排序。
请参考下列SQL多列排序语句:
select * from t1 order by col1,col5 desc,col3;
此例以col1第一优先升序排序,col5第二优先降序排序,col3第三优先升序排序。
C. SQL查询并排序问题
select * from 表 where 字段 in (x1,x2,x3,x4.....) order by 字段 ASC/DESC
此中排序字段是索引条件中字段,ASC为升序,DESC为降序,此中的排列会以X1,X2,X3排序,但X1可能有很多数据,如果在X1内部排序,请加上第二排序。
select * from 表 where 字段 in (x1,x2,x3,x4.....) order by 字段 ASC/DESC,字段2 ASC/DESC
此表达式是在X1,X2等排序的基础上再按字段2进行排序!
我就不明白,如何是多数据,X1,X2等又包含多个条记录,你就不想用Group呢?
你想看一下group by 的使用方法,对时可以对分组条件进行限定,关键词是having,使用方法类where,但与where是有区别的!
D. SQL表中的数据按一定顺序排列
1、哈哈,你对现代数据库软件的管理方式的理解还不够。
2、现代的数据库软件存取数据时,在物理上是不会按某种默认的顺序的,即便内部按顺序,它取出数据展示给你时,也不会用某种固定的顺序,因为,它的做派是,先取到哪个合要求的数据就取哪个。也许,今天是这几个在前面,明天可能就是那几个在前面了。对此,你不能纠结,也不必纠结。
3、那怎么办?就让它无序的展示给我们吗?那谁受得了?!哈哈,你如果对顺序有要求,你应该“说”出来,你不说,人家怎么知道呢。现在的数据库你要按某顺序取数据,请你加上“order”指令,比如:
select
a.*
from
table_1
a
order
by
a.id
(注意上面的指令中,table_1
表中应该有id字段)
4、如果你的表中经常会用到某种顺序取出展现,在建立表时针对性加上索引会使表的查询速度得到一定的提高。
E. sql中的排序,如何使用倒序
sql中排序倒序使用desc关键字,一般需要和order by 合用,示例sql语句如下:
例如:select * from student order by age desc;
意思是查询学生表,以学生年纪倒序排列。
排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序(asc),如果存在 where 子句,那么 order by 必须放到where 语句后面。
例如:select ename,job,ename from emp order by job desc,sal desc;
意思是查询员工表按照 job 和薪水倒序排序 。
(5)sql查询数据排序扩展阅读
sql中升序(正序)用法介绍:
1、使用asc关键字
例如:select ename,sal from emp order by sal asc;
手动指定按照薪水由小到大排序(升序关键字 asc)
2、不加asc关键字,系统默认升序
例如:select ename,job,sal from emp where job = ”MANAGER”order by sal;
取得job 为 MANAGER 的员工,按照薪水由小到大排序(系统默
认由小到大)
F. 根据名字排序查询 SQL
1、在SQL中,排序关键字为ORDER
BY。
2、假如要查询表t1中数据并按“名字”字段排序,可以使用以下语句:
SELECT * FROM t1 ORDER BY 名字3、上述排序方式默认为正序排列,若想倒序排列,可以在语句最后加上
DESC。
G. sql的查询一组数据按照要求排序并查看
--1.建表createtable表(datadate,namevarchar(10))--2.插入数据insertinto表values('2010-1-1','老李')insertinto表values('2011-1-1','小王')insertinto表values('2011-1-1','老李')insertinto表values('2012-1-1','小王')insertinto表values('2012-1-1','老李')insertinto表values('2012-1-1','张大')insertinto表values('2013-1-1','小王')insertinto表values('2013-1-1','老李')insertinto表values('2013-1-1','张大')insertinto表values('2014-1-1','小王')insertinto表values('2014-1-1','老李')insertinto表values('2014-1-1','张大')insertinto表values('2015-1-1','小王')insertinto表values('2015-1-1','老李')insertinto表values('2015-1-1','张大')--3.添加一列altertable表addsint--4如果只是查询(按name分组,data降序产生序列号)select*,Row_number()over()Asidfrom表--5.1如果需要更新WithTAs(select*,Row_number()over()Asidfrom表)UpdateTSetS=id--5.2查询更新后的结果select*from表orderbyname,datadescH. 怎么用sql对搜索结果排序并添加序号
1、首先建一张测试表coal_blead,里面有多个字段。
I. sql 对查询结果如何排序
不太清楚你说的什么意思,你想多出一列,目的是什么,我理解的是你多出来一列想对sum字段排序。如果是排序的话,你直接用order sum 就可以了
比如 ,select sum(score) as s from t_sc group by studentid order by s