![零基础学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=1739691034-D6kqQArqNaUG7NQQycWKcuTX11qjnh9e-0-59ac872f6aa643dd3e8ff4fd49d7f24b)
常见错误
在SELECT列表中只能使用一次DISTINCT关键字,而且DISTINCT关键字必须放在第一位,不要在其后添加逗号。例如,执行下面的语句将提示图2.8所示的错误信息。
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_27_1.jpg?sign=1739691034-s87JJimUanB1wkwid2F0BWDLyykEmWQa-0-9efae157b787b5ce3a209aea1307bc79)
图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=1739691034-fA0mekMzfn1r2L3mLdBHMORqVVYBuFz1-0-cae5d9f7b31fb6f12af363186b381796)
输出(如图2.9所示):
![](https://epubservercos.yuewen.com/30140E/29142620304904006/epubprivate/OEBPS/Images/47215_27_3.jpg?sign=1739691034-CsuHLDPPJEX76qp7TvX8GgITFh3yPS7T-0-d36ea901019721ed6277fa8ff6feb4ff)
图2.9 查询不重复的收货人信息