⑴ 如何用sql语句排序一个倒一个顺
例如,按学生学号升序排列,学生成绩按降序排列
sql是这样写的:select * from tab order by id,scroe desc
sql server会根据order by跟id scroe 先后进行排序,
先根据id升序排序,再根据scroe降序排序,也许你会发现scroe列的数据不是按照降序排列
这就是优先排序的原则,order by 后面谁在前,谁就优先排序
你可以仔细看看相同的id(你可以插入几行相同的id,不同scroe),score就是按照降序排列的
⑵ 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 和薪水倒序排序 。
(2)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 的员工,按照薪水由小到大排序(系统默
认由小到大)
⑶ SQL语句排序的问题
你的写法是错误的,按照你的写法在对n进行降序排序时,第一个m升序排序结果会失效,等于最终只读n做了降序排序,而且你的语句本身也比较冗余。
正确的写法是:
SELECT * FROM a ORDER BY m ASC ,n DESC;
我们可以通过一些实例来具体分析order by 子句的用法:
假设有Orders 表:
注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
⑷ sql server 怎么排序
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。
下面的查询返回按 ProctID 升序排序的结果:
代码如下 复制代码
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctLine, ProctModelID
FROM Proction.Proct
ORDER BY ProctID;
如果 ORDER BY 子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序 Proction.Proct 表中的行,然后在每个产品子类别中按 ListPrice 升序排序这些行。
代码如下 复制代码
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctSubcategoryID, ListPrice
FROM Proction.Proct
ORDER BY ProctSubcategoryID DESC, ListPrice;
问题
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在SQL2000里是这个顺序,到了SQL2005/2008又是那个顺序?
其实,只要语句里没有指定“order by”,SQLSERVER并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段
的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
⑸ 怎么用sql对搜索结果排序并添加序号
1、首先建一张测试表coal_blead,里面有多个字段。
⑹ SQL语句怎么写先按时间排序,再按姓名排序
select client,ID,taskdate from 表名 order BY client asc,taskdate,ID desc(如果让client为降序的话order by改成group by,asc改成desc,ID要升序desc改成asc)
将字段依次写在order by 后面即可 , 中间用逗号隔开
select * from 表 order by time , name
select * from 表 order by time asc , name asc
select * from 表 order by time desc , name desc
select * from 表 order by time asc , name desc
select * from 表 order by time desc , name asc
(注: asc 表示升序 , desc表示降序 , 未明确写明排序方式时默认是升序 )
与之类似的语法是 group by , 按多个字段分组时 , 也是依次将多个字段写在group by 的后面 , 并用逗号隔开 , 范例如下:
select time , name , sum(*) from 表 group by time , name
(6)sql视图升序排序的语句扩展阅读
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 SQL 的 DML 部分:
SELECT- 从数据库表中获取数据
UPDATE- 更新数据库表中的数据
DELETE- 从数据库表中删除数据
INSERT INTO- 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
CREATE DATABASE- 创建新数据库
ALTER DATABASE- 修改数据库
CREATE TABLE- 创建新表
ALTER TABLE- 变更(改变)数据库表
DROP TABLE- 删除表
CREATE INDEX- 创建索引(搜索键)
DROP INDEX- 删除索引
⑺ sql语句怎么写就可以排序了
向SQL SERVER和ORACLE数据库排序都是用order by关键字asc-升序desc-降序
--用户名降序
select用户名,登录时间from用户表orderby用户名desc
--用户名降序后,再对登陆时间进行升序
select用户名,登录时间from用户表orderby用户名desc,登录时间asc
⑻ SQL里如何实现视图的某一列的排序
select * from 视图 order by 列名
⑼ SQL里面的排序语句desc和ASC有什么区别
SQL 语句中, asc是指定列按升序排列,desc则是指定列按降序排列。
排序子句语法:order by 列名 asc/desc
例表格:tt
select*fromttorderbyn1asc,n2desc;