在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语句
参考技术A1、首先打开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 age3、查询结果:
4、如再在表中加一条数据,此时表中数据如下:
5、要消除重复的age,可用如下语句:
select distinct age from test6、查询结果中重复行消除:
第三章 集合与排序 3-4 对查询结果进行排序
以上是关于在SELECT语句中,对查询结果进行排序的子句是啥?能消除重复行的关键字是啥?的主要内容,如果未能解决你的问题,请参考以下文章