SQL DISTINCT

检索时去重

从数据库表获取数据时,结果集可能包含重复的行或值。如果要删除这些重复的值,可以在SELECT关键字后面指定DISTINCT关键字。

语法

DISTINCT子句用于从结果集中删除重复的行:

SELECT DISTINCT column_list FROM table_name;

在这里,column_list是要查询的字段,多个字段由逗号分隔。

让我们来看一些例子。

假设我们的数据库中有一个customer表,其中包含以下记录:

+---------+--------------------+-----------+-------------+
| cust_id | cust_name          | city      | postal_code |
+---------+--------------------+-----------+-------------+
|       1 | Maria Anders       | Berlin    | 12209       |
|       2 | Fran Wilson        | Madrid    | 28023       |
|       3 | Dominique Perrier  | Paris     | 75016       |
|       4 | Martin Blank       | Turin     | 10100       |
|       5 | Thomas Hardy       | Portland  | 97219       |
|       6 | Christina Aguilera | Madrid    | 28001       |
+---------+--------------------+-----------+-------------+

现在执行下面的语句,该语句返回该表city列中的所有行。

示例

SELECT city FROM customers;

执行之后,您将得到如下输出:

+-----------+
| city      |
+-----------+
| Berlin    |
| Madrid    |
| Paris     |
| Turin     |
| Portland  |
| Madrid    |
+-----------+

如果您仔细查看输出,您会发现“Madrid”这个城市在我们的结果中出现了两次。

去除重复数据

下面的语句查询时使用了DISTINCT

示例

SELECT DISTINCT city FROM customers;

执行上述命令后,将得到如下输出:

+-----------+
| city      |
+-----------+
| Berlin    |
| Madrid    |
| Paris     |
| Turin     |
| Portland  |
+-----------+

正如您这次看到的,我们的结果集中没有重复的值。

注意:如果对具有多个空值的列使用SELECT DISTINCT语句,那么SQL将保留一个空值,并从结果集中删除其他空值,因为DISTINCT将所有空值视为相同的值。



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载