SQL 6 抑制数据重复

如果要检索公司有哪些垂直部门,那么可以执行下面的SQL语句:

SELECT FDepartment FROM T_Employee

 

执行完毕我们就能看到下面的执行结果:

+---------------+
| FDepartment   |
+---------------+
| Development   |
| Development   |
| Development   |
| HumanResource |
| HumanResource |
| InfoTech      |
| InfoTech      |
| Sales         |
| Sales         |
+---------------+

 

这里列出了公司所有的垂直部门,不过很多部门名称是重复的,我们必须去掉这些重复的部门名称,每个重复部门只保留一个名称。

DISTINCT关键字是用来进行重复数据抑制的最简单的功能,而且所有的数据库系统都支持DISTINCT,DISTINCT的使用也非常简单,只要在SELECT之后增加DISTINCT即可。比如下面的SQL语句用于检索公司里有哪些垂直部门,并且一直重复数据的产生:

SELECT DISTINCT FDepartment FROM T_Employee

 

执行完毕我们就能看到下面的执行结果:

+---------------+
| fdepartment   |
+---------------+
| Development   |
| HumanResource |
| InfoTech      |
| Sales         |
+---------------+

 

DISTINCT  是对整个结果集进行数据重复抑制的,而不是针对每一个列的,执行下面的SQL:

SELECT DISTINCT FDepartment, FSubCompany FROM T_Employee

+---------------+-------------+
| fdepartment   | fsubcompany |
+---------------+-------------+
| Development   | Beijing     |
| Development   | ShenZhen    |
| Development   | Guangzhou   |
| HumanResource | Beijing     |
| InfoTech      | Beijing     |
| InfoTech      | ShenZhen    |
| Sales         | Beijing     |
+---------------+-------------+

 

检索结果中不存在FDepartment和FSubCompany列都重复的数据行,但是却存在FDepartment列重复的数据行,这就验证了“DISTINCT是对整个结果集进行数据重复抑制 ”这句话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值