
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.6 删除重复数据
某些情况下,数据表中有可能会出现重复数据。例如,在表中有两列,第1列用于存储省份的名称,第2列用于存储省份下的市名称,因为省份下有很多市,所以会输入很多重复的省份名称。如果使用SELECT查询出各省份的名称,其中大部分省份的名称就是重复的。为了解决数据重复的问题,就需要使用DISTINCT关键字。
DISTINCT关键字可以从SELECT语句的结果中删除重复的行。如果没有指定DISTINCT关键字,那么将返回所有行,包括重复的行。在使用DISTINCT关键字删除重复记录时,须将DISTINCT关键字放在第1个字段名的前面。DISTINCT的语法格式如下:

常见错误
在SELECT列表中只能使用一次DISTINCT关键字,而且DISTINCT关键字必须放在第一位,不要在其后添加逗号。例如,执行下面的语句将提示图2.8所示的错误信息。

图2.8 将DISTINCT关键字放在第2个字段前,提示语法错误
DISTINCT关键字并不是指某一行,而是指不重复SELECT输出的所有列。
在订单信息表orderform中列出了订单的详细信息。如果想要查询出该表中的收货人信息,需要使用到DISTINCT关键字,使用此关键字可以删除重复的收货人信息,简化查询结果。
示例08 在orderform订单信息表中,在SELECT语句中使用DISTINCT关键字查询出不重复的收货人信息。
输入:

输出(如图2.9所示):

图2.9 查询不重复的收货人信息