SQL中distinct的用法 四种示例分析

SQL中distinct的用法(四种示例分析)

Distinct关键字用于过滤掉多余的重复记录,只保留一条,但它往往只用于返回重复记录的数量,而不是用于返回所有没有重复的值。原因是distinct只能返回其目标字段,而不能返回其他字段。接下来我会通过这篇文章和大家分享distinct在SQL中的用法。有需要的朋友可以参考一下。

使用mysql时,有时需要找出没有重复字段的记录。虽然mysql提供了关键字distinct来过滤掉冗余的重复记录并只保留一个,但它通常只用于返回非重复记录的数量,而不是所有具有非重复记录的值。原因是distinct只能返回其目标字段,不能返回其他字段。这个问题困扰我很久了。如果distinct解决不了,我只好用双循环查询来解决了。对于一个数据量非常大的站来说,这无疑会直接影响效率,所以浪费了我很多时间。

在该表中,可能包含重复的值。这不是问题,但有时您可能只想列出不同的值。关键字distinct用于返回唯一且不同的值。

表A:

示例1

复制代码如下:

从中选择不同的名称

执行结果如下:

示例2

复制代码如下:

从中选择不同的名称、id

执行结果如下:

其实按照

“name+id”

,去掉重量。同时作用于

name和id

。此方法同时受

Access和SQL Server

支持。

示例3:统计

复制代码如下:

从A中选择count(不同的名称);-重复数据消除后表中名称的数量,SQL Server支持,但Access不支持。

从A中选择count(不同的名称,id)。-不支持- SQL Server和Access

示例4

复制代码如下:

从A中选择id、不同的名称。-将提示错误,因为distinct必须放在开头

其他

distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能的。例如,如果表A有一个“Remarks”列,就不可能直接通过distinc获得distinc名称和相应的“Remarks”字段。

但是,可以使用其他方法来实现关于SQL Server如何将一列的多行拼接成一行的讨论。

SQL中distinct的用法 四种示例分析