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