CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

用了distinct了,但是还是有重复的记录,怎么回事呢

楼主rbleng(如冰)2003-09-04 13:41:19 在 MS-SQL Server / 基础类 提问

如题 问题点数:0、回复次数:11Top

1 楼pengdali()回复于 2003-09-04 13:47:16 得分 0

不可能    
  但你要注意:distinct   是对select   后所有的列起作用Top

2 楼mjhnet(天涯沦落人)回复于 2003-09-04 13:48:17 得分 0

请将语句列出来,你写的肯定不对Top

3 楼tj_dns(愉快的登山者)回复于 2003-09-04 13:51:16 得分 0

可能是对“重复”理解的不对。Top

4 楼baodi_z(冷冷的太阳)回复于 2003-09-04 13:57:34 得分 0

看看distinct的用法就可以了Top

5 楼hanps()回复于 2003-09-04 14:01:32 得分 0

用distinct   对在它后面所有的列有作用,你把你的语句和数据放让大家看看Top

6 楼king0401(king0401)回复于 2003-09-04 14:13:22 得分 0

使用   DISTINCT   消除重复项  
  DISTINCT   关键字可从   SELECT   语句的结果中除去重复的行。如果没有指定   DISTINCT,那么将返回所有行,包括重复的行。例如,如果在   titleauthor   中选择所有作者   ID   时未使用   DISTINCT,那么将会返回下列行(其中包括一些重复的行):  
   
  USE   pubs  
  SELECT   au_id  
  FROM   titleauthor  
   
  下面是结果集:  
   
  au_id                
  -----------    
  172-32-1176    
  213-46-8915    
  213-46-8915    
  238-95-7766    
  267-41-2394    
  267-41-2394    
  274-80-9391    
  409-56-7008    
  427-17-2319    
  472-27-2349    
  486-29-1786    
  486-29-1786    
  648-92-1872    
  672-71-3249    
  712-45-1867    
  722-51-5454    
  724-80-9391    
  724-80-9391    
  756-30-7391    
  807-91-6654    
  846-92-7186    
  899-46-2035    
  899-46-2035    
  998-72-3567    
  998-72-3567    
   
  (25   row(s)   affected)  
   
  而使用了   DISTINCT   后,就能够除去重复项,而只查看唯一的作者   ID:  
   
  USE   pubs  
  SELECT   DISTINCT   au_id  
  FROM   titleauthor  
   
  下面是结果集:  
   
  au_id                
  -----------    
  172-32-1176    
  213-46-8915    
  238-95-7766    
  267-41-2394    
  274-80-9391    
  409-56-7008    
  427-17-2319    
  472-27-2349    
  486-29-1786    
  648-92-1872    
  672-71-3249    
  712-45-1867    
  722-51-5454    
  724-80-9391    
  756-30-7391    
  807-91-6654    
  846-92-7186    
  899-46-2035    
  998-72-3567    
   
  (19   row(s)   affected)  
   
  Top

7 楼eminena(俄罗斯方块)回复于 2003-09-04 14:13:23 得分 0

distinct     针对其后所有列起作用.  
   
  Top

8 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-09-04 14:46:22 得分 0

 
  create   table   #t   (a   int,   b   int)  
   
  insert   into   #t   select   2,2   union   all   select   2,3   union   all   select   1,5   union   all  
  select   2,2  
   
  select   distinct   *   from   #t  
   
  a   列会有重复   a,b就不会Top

9 楼Sorder(要才没才,要貌没貌,你还愿意嫁给我吗)回复于 2003-09-04 16:01:19 得分 0

肯定你搞错了Top

10 楼hillhx(曾经的曾经)回复于 2003-09-04 16:45:53 得分 0

可能是你的数据库中有不能显示的字符,你可以用LEN函数看看你所谓相同的两条数据是不是长度真的一样,我感觉可能是搀杂了脏字符比如   回车、TAB等,如果真的用了DISTINCT仍然有相同数据,我感觉只可能是看上去相同,实际两个数据并不相同Top

11 楼hillhx(曾经的曾经)回复于 2003-09-04 16:54:26 得分 0

你执行以下的例子   就明白了,我加了“回车”脏字符  
   
  begin   tran  
  select   *    
  into   tbl1  
  from   (  
  select   'aaa'   as   a    
  union   all  
  select   'bbb'   as   a    
  union   all  
  select   'ccc'   as   a    
  union   all  
  select   'aaa'   +   CHAR(13)   as   a    
  union   all  
  select   'bbb'   +   char(10)   as   a   )   t1  
   
  select   *   from   tbl1  
   
  select   distinct   a   from   tbl1  
   
  select   a   ,len(a)   from   tbl1  
   
  rollback   tranTop

相关问题

  • ClientDataSet在QuickReport只能显示第一行记录,怎么回事?
  • Query.RecordCount=-1是怎么回事,里面有很多记录的呀?
  • 取记录集失败:用尽的Resultset!!!!这是怎么回事???
  • 取记录集失败:用尽的Resultset!!!!这是怎么回事???
  • dbgrid中记录无法删除,怎么回事
  • 记录集不支持更新是怎么回事啊?
  • ado编程,这种‘重复定义’是怎么回事?请指点
  • 取记录集失败:用尽的Resultset!!!!这是怎么回事???help
  • ODBC驱动程序不支持动态记录集是怎么回事??
  • 这又是怎么回事啊????数据库添加记录的问题

关键词

  • distinct
  • 重复
  • titleauthor
  • au
  • 结果
  • 使用

得分解答快速导航

  • 帖主:rbleng

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo