SqlServer系列笔记——查询过滤分组排序
DISTINCT
目前累计服务客户成百上千,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站设计、成都网站制作、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联公司始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
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
文章题目:SqlServer系列笔记——查询过滤分组排序
文章出自:http://ybzwz.com/article/jpsjee.html