在SELECT语句中,对查询结果进行排序的子句是啥?能消除重复行的关键字是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SELECT语句中,对查询结果进行排序的子句是啥?能消除重复行的关键字是啥?相关的知识,希望对你有一定的参考价值。

对查询结果进行排序的子句 having子句,消除重复行的关键字是distinct。

1、having  语法:

SELECT [ ALL | DISTINCT ] * | projectItem [, projectItem ]*    FROM tableExpression

[ WHERE booleanExpression ]    [ GROUP BY  groupItem [, groupItem ]*  ]

[ HAVING booleanExpression ];

示例:

SELECT Customer,SUM(OrderPrice) FROM Orders   GROUP BY Customer

HAVING SUM(OrderPrice)<2000

上面语句的意思是从结果中筛选出了总体价格小于2000的商品。

2、distinct 语法:

SELECT DISTINCT 列名称 FROM 表名称

示例:SELECT DISTINCT Company FROM Orders 

上面语句的意思是对订单表中的公司进行去重查询。


扩展资料

SELECT语句返回用指定的条件在一个数据库中查询的结果,返回的结果被看作记录的集合。

语法:

SELECT [predicate] * | table.* | [table.]field1 [AS alias1] [, [table.]field2 [AS alias2]

[, ...]] FROM tableexpression [, ...] [IN externaldatabase] [WHERE... ] [GROUP BY... ] 

[HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION]

解释说明:predicate可选参数,该参数可取值为ALL(缺省值)、DISTINCT、DISTINCTROW 或TOP。如果该参数为ALL,则返回SQL语句中符合条件的全部记录。

如果为DISTINCT,则省略选择字段中包含重复数据的记录;如果为DISTINCTROW,则省略基于整个重复记录的数据,而不只是基于重复字段的数据。

如果为TOP n(n为一个整数),则返回特定数目的记录,且这些记录将落在由 ORDER BY 子句指定的前面或后面的范围中。

参考资料链接:百度百科-SQL数据库

参考资料链接:百度百科-select语句

参考技术A

1、首先打开SQL Server Management管理工具,运用Select语句查询出要排序的数据,如下图所示。

2、接下来我们直接运用Order By对数据中的ContactName字段进行排序,如下图所示,默认是升序。

3、如果想按照降序的话,则需要在排序字段后面加上desc属性,如下图所示。

4、接下来你也可以在order by后面加上两个或者多个字段,如下图所示,SQL Server会按照他们的顺序组合进行排序。

5、如果想对ContactName进行升序,对CustomerID进行降序,则可以安装如下图所示的方式书写。

6、如果想对两个排序字段都按降序进行排序,则需要在每个字段后面都加desc属性,如下图所示。

参考技术B

在SELECT语句中,对查询结果进行排序的子句是having子句。进行排序的子句是orderby,消除重复行的关键字是DISTINCT子句。

Having和Where作用是相近的,只不是一个用于普通字段的限定,而Having是用于对聚合后结果的限定。例:

select pname,count(*) as cnt from ar where count(*) >1 group by pname 是错误的,正确的应该是select pname,count(*) as cnt from ar  group by pname having count(*) >1

HAVING 子句与 WHERE 子句类似,但只应用于作为一个整体的组(即应用于在结果集中表示组的行),而 WHERE 子句应用于个别的行。查询可同时包含 WHERE 子句和 HAVING 子句。

扩展资料

group By和order by having用法和区别:

GROUP BY(分组):必须配合聚合函数一起使用,使用时至少需要一个分组标志字段。

重点:使用GROUP BY的查询语句的时候,选择后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY  后面:

 SELECT   部门,COUNT(id)FROM学生组BY 部门

例如:这条sql,如果部门没有跟在由后面这句语法是错误的。

聚合函数:

-COUNT:统计行数量:

SELECT部门,COUNT(id)FROM学生组BY部门。

OEDER  BY:就是行的排序方式,默认的为升序。后面必须列出排序的字段名,可以是多个字段名。

参考技术C

在select语句中,对查询结果进行排序的字句是order by子句;消除重复行的关键字是distinct。

举例如下

工具:SqlServer 2008 R2

步骤:

1、test表中数据如下:

2、现要对表中数据按照age从小到大的顺序排列数据,可用如下语句:

select * from test order by age

3、查询结果:

4、如再在表中加一条数据,此时表中数据如下:

5、要消除重复的age,可用如下语句:

select distinct age from test

6、查询结果中重复行消除:

第三章 集合与排序 3-4 对查询结果进行排序

一、ORDER BY 子句

技术分享图片

ORDER BY 子句中书写的列名称为排序键。
 
ORDER BY 和 WHERE并用时 SELECT 的执行顺序:
FROM ---WHERE ---GROUP BY----HAVING---- SELECT----ORDER BY
 
二、指定升序和降序
省略关键字会默认升序进行排列。
升序关键字:ASC ascendent上升的
降序关键字:DESC descendent下降的
技术分享图片
技术分享图片
由于ASC和DESC这两个关键词是以列为单位指定的,因此可以同时指定一个列为升序,指定其他列为降序。
 
三、指定多个排序建
在ORDER BY子句中指定多个排序键,规则是优先使用左侧的键,如果该列存在相同值的话,在接着参考右侧的键。
 
四、NULL的排序
排序键包含NULL时,会在开头或末尾进行汇总。MySQL在表的开头汇总。
 
五、排序键中使用显示用的别名
SELECT语句按照子句为单位的执行顺序如下:
FROM ---WHERE ---GROUP BY----HAVING---- SELECT----ORDER BY
 
六、ORDER BY子句中可以使用的列
在ORDER BY子句中可以使用SELECT子句中未使用的列和聚合函数。
 
七、不要使用列的编号
在ORDER BY子句中可以使用SELECT子句中出现的列所对应的编号。但不推荐这样用,理由如下:
(1)代码阅读起来比较难
(2)实际上,SQL-92中已经明确指出该功能将来会被删除。

以上是关于在SELECT语句中,对查询结果进行排序的子句是啥?能消除重复行的关键字是啥?的主要内容,如果未能解决你的问题,请参考以下文章

select语句对对查询结果排序时,用( )子句指定排序字段,使用( )指定升序,使用( )降序。

在sql语句中,ORDERBY子句的功能是()

5)基本查询语句

上)

在SQL语句中,分组用啥子句,排序用啥子句

MySQL中select语句使用order按行排序