㈠ sql语句排序的问题
你的写法是错误的,按照你的写法在对n进行降序排序时,第一个m升序排序结果会失效,等于最终只读n做了降序排序,而且你的语句本身也比较冗余。
正确的写法是:
SELECT * FROM a ORDER BY m ASC ,n DESC;
我们可以通过一些实例来具体分析order by 子句的用法:
假设有Orders 表:
注意:在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。
㈡ 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是有区别的!
㈢ SQL语句查询成绩表中排名前400名的所有列数据,按升序排列
select * from 成绩表 order by 成绩 fetch first 400 rows only
上面我是用的db2数据库
sql server 可以用top 你都拿去试看 不行就用生成序号 取400的方式
select top 400 * from 成绩表 order by 成绩
㈣ 如何对sql检索出的数据进行多列排序
SQL多列排序可以在ORDER BY 子句里列出多个列进行排序,列与列之间用逗号隔离,标注关键字ASC为升序排序、DESC为降序排序,省略升/降排序关键字则默认为升序排序。排序字段列表中越靠前的字段其排序优先级别越高。请注意对SQL语句除了对列实施排序外,还可以对基于列的计算表达式实施排序。
请参考下列SQL多列排序语句:
select * from t1 order by col1,col5 desc,col3;
此例以col1第一优先升序排序,col5第二优先降序排序,col3第三优先升序排序。
㈤ sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升序排列
代码如下:
select xuehao as 学号,score as 总成绩
from CJBwhere xuehao in(
select xuehao from XSB)
group by xuehao,score
order by score desc,xuehao
select id as 学号, sum(score) as 总成绩
from 成绩表
group by id
order by sum(score) desc, id asc
(5)sql语句查询内容升序排序扩展阅读
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
order by 是用在where条件之后,用来对查询结果进行排序。
order by 字段名 asc/desc 。
asc 表示升序(默认为asc,可以省略)。
desc表示降序。
order by 无法用于子查询,否则会报错:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
㈥ sql查询降序和升序的问题
select
*
from
news
where
typeid="000501"
order
by
需要排序的字段名
这里后面不写默认是升序
降序的话select
*
from
news
where
typeid="000501"
order
by
需要排序的字段名
desc
㈦ 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
(7)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按某个字段值顺序排序
升序:select * from 表名 order by 表中的字段 asc(MySQL中默认是升序排列,可不写) ;
降序:select * from 表名 order by 表中的字段 desc ;
㈨ 在数据库中如何用select-sql给相应的数据排序从高到低
1、打开一个Access数据库软件,可以打开已创建好的数据库,使用表设计工具,创建一个表,如下图所示。
㈩ sql中默认为升序
1、选择tools->window list。