千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,DISTINCTDISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列,因此下面的语句并不会只保留Fdepartment进行重复值处理:SELECT DISTINCT FDepartme
千家信息网最后更新 2026年11月01日SqlServer系列笔记——查询过滤分组排序
  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


排序 子句 年龄 语句 分组 人数 函数 升序 多个 数据 处理 相同 从小到大 从小 作用 信息 员工 工资 年龄段 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 互联网科技战争 金融科技与互联网金融 科技服务与互联网 互联网科技公司电话 奇酷互联网科技 互联网科技美容 亿人帮互联网科技 海南科技产业互联网平台 广州慧亚互联网科技怎么样 玉溪互联网科技怎么选 互联网媒体平台算高科技产业 洛阳昕诺飞互联网科技有限公司 呼和浩特新华互联网科技学院 互联网公司黑科技创始人 区块链结合互联网科技 广东鹅鹅鹅互联网科技有限公司 张家口科技产业互联网平台 平安好医生打造互联网科技医疗 北京瑞云互联网科技有限公司 互联网科技战争 安徽鑫晟辉互联网科技 无线互联网科技 华中科技有哪些互联网大佬 剑昆互联网络科技有限公司临桂 昭通云南众福互联网科技有限公司 苏州铭阳互联网科技有限公司 互联网科技平台产品运营 版纳互联网科技选哪家 互联网科技快速发展优美句子
0