在SQL中使用DISTINCT消除重复行(上)

日期: 2009-04-28 作者:John L. ViescasMichael J. Hernandez翻译:曾少宁 来源:TechTarget中国 英文

消除重复行   当运行SELECT语句时,我们将不可避免地会碰上有重复记录行的结果集。SQL对于这样的结果集的出现不会给出任务的警告。在SELECT语句中的使用DISTINCT关键字,结果集就会去除和清理所有重复的记录行。如4-9显示了DISTINCT关键字的语法图。

     图4-9DISTINCT关键字的语法   如图所示,DISTINCT是一个可选的关键字,它处理SELECT子句中指定的一组字段。DISTINCT关键字会要求数据库系统逐行地将所有字段作为一个单元进行值检查,同时删除所有发现的冗余行。接着,将剩下的唯一的行返回结果集。下面的例子显示了在恰当的环境中DISTINCT关键字所……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

消除重复行

  当运行SELECT语句时,我们将不可避免地会碰上有重复记录行的结果集。SQL对于这样的结果集的出现不会给出任务的警告。在SELECT语句中的使用DISTINCT关键字,结果集就会去除和清理所有重复的记录行。如4-9显示了DISTINCT关键字的语法图。

  DISTINCT关键字的语法

  图4-9DISTINCT关键字的语法

  如图所示,DISTINCT是一个可选的关键字,它处理SELECT子句中指定的一组字段。DISTINCT关键字会要求数据库系统逐行地将所有字段作为一个单元进行值检查,同时删除所有发现的冗余行。接着,将剩下的唯一的行返回结果集。下面的例子显示了在恰当的环境中DISTINCT关键字所带来的不同之处。

  假设我们向数据库上发送了下面的请求。

"Which cities are represented by our bowling league membership?"

  问题看起来非常简单,因此我们直接进入翻译过程。

Translation

Select city from the bowlers table

Clean Up

Select city from  bowlers 

SQL

SELECT City FROM Bowlers 

  这里问题在于这个SELECT语句的结果集将显示在Bowlers表中查找到的每个城市名称的每次出现。比如,如果有20个人来自Bellevue,7个人来自Kent和14个人来自Seattle,那么结果集就显示20个Bellevue出现的城市,7个Kent出现的城市和14个Seattle出现的城市。很明显,这样冗余的信息是不必要的。我们所想要看到的是在Bowlers表中查找到的每个城市名称的一次出现。我们可以通过在SELECT语句中使用DISTINCT关键字来消除冗余信息来解决这个问题。

  现在我们使用DISTINCT关键字,并再次运行这个请求的翻译过程。注意,我们同时在Translation步骤和Clean Up步骤中包含了词“distinct”。


"Which cities are represented by our bowling league membership?"

Translation

Select the distinct city values from the bowlers table

Clean Up

Select  distinct city  from  bowlers 

SQL

SELECT DISTINCT City FROM Bowlers 

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐

  • SQL SELECT语句基础指南

    本专题为QL SELECT语句基础。侧重概述了如何使用SELECT来访问SQL数据库中所有内容以及组成SELECT语句的许多子句名称和功能;同时还阐述了如何使用DISTINCT关键字消除重复的行,以及如何正确使用ORDER BY子句来排序数据。

  • SQL SELECT语句和SELECT查询示例(四)

    下面列出的是示例数据库中的请求语句以及方案查询的名称。你可以练习一下,尝试写出每个请求所需要的SQL,并通过示例中已保存的查询来检查你的答案。

  • SQL Server数据库管理常用SQL和T-SQL语句(下)

    本文继续介绍在SQL Server数据库管理过程中常用的SQL和T-SQL语句:查看数据库里所有的存储过程和函数、查看数据库里用户和进程的信息以及收缩数据库日志文件的方法。

  • SQL Server数据库管理常用SQL和T-SQL语句(上)

    SQL Server数据库管理过程中我们通常会用到哪些常用的SQL和T-SQL语句?文中我们可以了解查看数据库的版本、查看数据库所在机器操作系统参数等一些语句。