CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

求助:关于distinct的问题

楼主SEED_twj(FreeDam)2006-05-04 12:22:10 在 MS-SQL Server / 应用实例 提问

一个表中真正只有10条数据  
  其他的都和这10条是一样的(都是用这10条粘贴复制出来的)  
  我现在想要把这10条真正的数据取出来,并且每个字段的值都要显示出来  
  请问:SQL语句应该怎么写  
  问题点数:20、回复次数:16Top

1 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2006-05-04 12:25:16 得分 0

select   distinct   *   from   tablenameTop

2 楼SEED_twj(FreeDam)回复于 2006-05-04 12:27:52 得分 0

这样返回的是所有记录  
  distinct   没有起作用Top

3 楼jwt1982(叛逆者)回复于 2006-05-04 12:29:38 得分 0

select   distinct   ColA   as   Col,*   from   tablenameTop

4 楼SEED_twj(FreeDam)回复于 2006-05-04 12:31:40 得分 0

返回的还是所有记录啊  
  郁闷。。。。。。。。Top

5 楼SEED_twj(FreeDam)回复于 2006-05-04 12:36:04 得分 0

ColA   as   Col  
  这应该只是取了个别名  
  好像跟查询没有关啊Top

6 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2006-05-04 13:01:38 得分 0

select   distinct   *   from   tablename  
  楼主是不是还有什么没有说清楚,我这里都是返回不重复的行。  
   
  你再试试  
  select   *   from   tablename  
  union  
  select   *   from   tablename  
   
  要不就换:  
  select   col1,col2,max(col3),max(col4),……  
  from   tablename    
  group   by   col1,col2  
  (假设col1,col2是主键)  
  Top

7 楼torrent2008(微笑)回复于 2006-05-04 13:04:23 得分 0

字段里一定有不同的值,  
  distinct的结果应该是正确的  
  有数据记录吗?Top

8 楼SEED_twj(FreeDam)回复于 2006-05-04 13:21:37 得分 0

不对啊  
  我一共有111条记录  
  select   distinct   *   from   tablename   后  
  返回的还是111条记录啊  
  主要是根据   字段   Stu_exam_no   来消重的  
  select   distinct   Stu_exam_no   from   tablename  
  返回的就是10条记录  
  不过只有   Stu_exam_no   字段的值  
  我现在要显示出每个字段的值Top

9 楼chenqianlong(443)回复于 2006-05-04 13:31:37 得分 0

有回車或空格  
  select   distinct   replace(replace(replace(col1,char(10),''),char(13),''),'   ',''),...  
  from   tableTop

10 楼SEED_twj(FreeDam)回复于 2006-05-04 13:34:42 得分 0

看不懂  
  什么意思  
  可以解释一下么?Top

11 楼SEED_twj(FreeDam)回复于 2006-05-04 19:36:49 得分 0

如果  
  select   distinct   *   from   tablename  
   
  distinct根本就没有起到作用    
  Top

12 楼SEED_twj(FreeDam)回复于 2006-05-04 21:31:59 得分 0

表结构  
  create   table   Notice_temp  
  (  
  Notice_temp_id   int   identity(1,1)   primary   key,   --主键,自动编号  
  Stu_name   nvarchar(20),   --学生姓名  
  Stu_sex   nvarchar(3),   --学生性别  
  Stu_exam_no   nvarchar(20),   --准考证号  
  Stu_ID_card   nvarchar(20),   --身份证号  
  Stu_area   nvarchar(20),   --学生所在地区  
  Stu_school_name   nvarchar(50),   --学生所在高中  
  Stu_subject   nvarchar(10),   --文理科  
  Stu_exam_score   int,   --高考分数  
  Stu_address   nvarchar(100),   --家庭地址  
  Stu_post_code   int,   --邮编  
  Stu_phone   nvarchar(15),   --联系电话  
  Stu_linkman   nvarchar(10),   --联系人  
  Remark   nvarchar(10)   --判断是应届还是往届生  
  )  
  要求  
  查询出Stu_exam_no不重复的所有记录,其他字段(除Notice_temp_id)都可以重复  
  测试数据:  
  1   张三   男   123   456   武汉   华师一   理科   100   武汉武昌   430000   027-12345678   张三   应届生  
  2   李四   男   123   456   武汉   华师二   理科   200   武汉武昌   430000   027-12345678   李四   应届生  
  3   王五   男   234   456   武汉   华师三   理科   300   武汉武昌   430000   027-12345678   王五   应届生  
  4   张三   男   345   456   武汉   华师四   理科   400   武汉武昌   430000   027-12345678   张三   应届生  
  查询结果:  
  1   张三   男   123   456   武汉   华师一   理科   100   武汉武昌   430000   027-12345678   张三   应届生  
  3   王五   男   234   456   武汉   华师三   理科   300   武汉武昌   430000   027-12345678   王五   应届生  
  4   张三   男   345   456   武汉   华师四   理科   400   武汉武昌   430000   027-12345678   张三   应届生Top

13 楼jwt1982(叛逆者)回复于 2006-05-05 07:55:47 得分 0

2   李四   男   123   456   武汉   华师二   理科   200   武汉武昌   430000   027-12345678   李四   应届生  
   
  这条记录为什么不显示????什么理由?根据什么条件?Top

14 楼paoluo(一天到晚游泳的鱼)回复于 2006-05-05 08:31:08 得分 0

Select   A.*  
  from   Notice_temp   A  
  Inner   Join(Select   Min(Notice_temp_id)   As   Notice_temp_id,Stu_exam_no   from   Notice_temp   Group   By   Stu_exam_no)   B  
  On   A.Notice_temp_id=B.Notice_temp_id   And   A.Stu_exam_no=B.Stu_exam_noTop

15 楼paoluo(一天到晚游泳的鱼)回复于 2006-05-05 08:36:38 得分 20

Or  
   
  Select   *   from   Notice_temp    
  Where   Notice_temp_id   In   (Select   Min(Notice_temp_id)   As   Notice_temp_id   from   Notice_temp   Group   By   Stu_exam_no)  
   
  Top

16 楼SEED_twj(FreeDam)回复于 2006-05-05 10:31:08 得分 0

牛人  
  真是太感谢了  
  最后问一个,这2条语句在执行速度上,哪个快一些?Top

相关问题

关键词

得分解答快速导航

  • 帖主:SEED_twj
  • paoluo

相关链接

  • SQL Server类图书

广告也精彩

反馈

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