iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SqlServer系列笔记——查询过滤分组排序
  • 832
分享到

SqlServer系列笔记——查询过滤分组排序

2024-04-02 19:04:59 832人浏览 安东尼
摘要

DISTINCTDISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留Fdepartment进行重复值处理:    SELECT

  1. DISTINCT

    DISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列,

因此下面的语句并不会只保留Fdepartment进行重复值处理:

 

   SELECT DISTINCT FDepartment,FSubCompany 

     FROM T_Employee

2. GROUP BY

按照年龄进行分组统计各个年龄段的人数:

SELECT FAge,Count(*) FROM T_Employee GROUP BY Fage

GROUP BY子句必须放到WHERE语句的之后 


没有出现在GROUP BY子句中的列是不能放到SELECT语句后的列名列表中的 (聚合函数中除外)


错误:

 SELECT FAge,FSalary FROM T_Employee GROUP BY FAge 


正确:

 SELECT FAge,AVG(FSalary) FROM T_Employee GROUP BY FAge

3.Having

在Where中不能使用聚合函数,必须使用Having,Having要位于Group By之后:

 

   SELECT FAge,COUNT(*) AS 人数 FROM T_Employee 

    GROUP BY FAge 

    HAVING COUNT(*)>1 


注意Having中不能使用未参与分组的列,Having不能替代where。作用不一样,Having是对组进行过滤。


4.In

Delete T_Employee where FId in(21,22)

SELECT FAge,FNumber,FName FROM T_Employee 

  WHERE FAge IN (23,25,28) 

范围值:

   SELECT * FROM T_Employee WHERE FAGE>=23 AND FAGE <=27 

   

SELECT * FROM T_Employee WHERE FAGE BETWEEN 23 AND 27


5.ORDER BY 数据排序

ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,

还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。


按照年龄升序排序所有员工信息的列表:

    SELECT * FROM  T_Employee ORDER BY FAge ASC 


按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序 :

SELECT * FROM  T_Employee ORDER BY FAge DESC,FSalary DESC(多个排序条件)



ORDER BY子句要放到WHERE子句之后 :

SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC 


您可能感兴趣的文档:

--结束END--

本文标题: SqlServer系列笔记——查询过滤分组排序

本文链接: https://www.lsjlt.com/news/38843.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作