![零基础学SQL(升级版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/849/49639849/b_49639849.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.6 删除重复数据
某些情况下,数据表中有可能会出现重复数据。例如,在表中有两列,第1列用于存储省份的名称,第2列用于存储省份下的市名称,因为省份下有很多市,所以会输入很多重复的省份名称。如果使用SELECT查询出各省份的名称,其中大部分省份的名称就是重复的。为了解决数据重复的问题,就需要使用DISTINCT关键字。
DISTINCT关键字可以从SELECT语句的结果中删除重复的行。如果没有指定DISTINCT关键字,那么将返回所有行,包括重复的行。在使用DISTINCT关键字删除重复记录时,须将DISTINCT关键字放在第1个字段名的前面。DISTINCT的语法格式如下:
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_26_4.jpg?sign=1738872000-VRcFuLBlICmZcDU8TDaw5FVr9wJLQce0-0-13148894946262e80d7bfa62a00c2a3d)
常见错误
在SELECT列表中只能使用一次DISTINCT关键字,而且DISTINCT关键字必须放在第一位,不要在其后添加逗号。例如,执行下面的语句将提示图2.8所示的错误信息。
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_27_1.jpg?sign=1738872000-QS17Hf0qITvX6XEFeGPoqwuKm86nWGMY-0-502c4992197a6ddb9bc8dbcb22bde34f)
图2.8 将DISTINCT关键字放在第2个字段前,提示语法错误
DISTINCT关键字并不是指某一行,而是指不重复SELECT输出的所有列。
在订单信息表orderform中列出了订单的详细信息。如果想要查询出该表中的收货人信息,需要使用到DISTINCT关键字,使用此关键字可以删除重复的收货人信息,简化查询结果。
示例08 在orderform订单信息表中,在SELECT语句中使用DISTINCT关键字查询出不重复的收货人信息。
输入:
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_27_2.jpg?sign=1738872000-x2lN1Q6KctLk8zmddoEyUloPvAeOqjpE-0-e96054b2aa8371b5e799c7257fbbfbbe)
输出(如图2.9所示):
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_27_3.jpg?sign=1738872000-WxSNfG44wcsLaqjSmhTQW9PixsGLNGni-0-2437a55977b72be44a049b37db85157c)
图2.9 查询不重复的收货人信息