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

求Distinct消除重复项复杂一点的问题

楼主zdnetchina(天天向上)2005-06-03 14:54:14 在 MS-SQL Server / 基础类 提问

a             b               c  
  ----------------------  
  x             y               z  
  x             a               u  
  x             y               a  
  y             j               q  
   
  返回   一个a=x   的所有所有字段   和一个x 问题点数:20、回复次数:9Top

1 楼posonhuang(自知才疏学浅)回复于 2005-06-03 15:03:56 得分 0

你的问题问得不清楚?  
  是返回a=x的所有的值,还是单单字段?Top

2 楼hglhyy(為人民币服务!)回复于 2005-06-03 15:04:10 得分 0

你要一个什么样的结果??  
  你把结果集帖出来Top

3 楼hsj20041004(光芒)回复于 2005-06-03 15:15:14 得分 0

select   a=case   when   a='x'   then   ''   else   a   end   ,b,c    
  from   tablename   where   a='x'Top

4 楼zdnetchina(天天向上)回复于 2005-06-03 23:04:34 得分 0

x             y               z  
                a               u  
                y               a  
   
  返回这样的结果集Top

5 楼zdnetchina(天天向上)回复于 2005-06-03 23:30:45 得分 0

x             y               z  
                                a  
                a               uTop

6 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-03 23:33:45 得分 5

 
  Select  
  (Case   When   Exists   (Select   1   from   tableName   Where   a=T1.a   And   b<T1.b)   Then   ''   Else   a   End)   As   a,  
  b,  
  c  
  from   TableName   T1  
  Where   a='x'Top

7 楼paoluo(一天到晚游泳的鱼)回复于 2005-06-03 23:34:55 得分 5

没看到你的后一个回帖,所以语句还是有问题。Top

8 楼filebat(Mark)回复于 2005-06-03 23:52:01 得分 0

--测试使用的数据  
  create   table   ta(a   char,   b   char,   c   char)  
  go  
  insert   ta   select   'x',   'y',   'z'  
  union   all   select   'x',   'a',   'u'  
  union   all   select   'x',   'y',   'a'  
  union   all   select   'y',   'j',   'q'  
  go  
  select   *    
  from   ta  
  where   a='x'  
  Top

9 楼filebat(Mark)回复于 2005-06-03 23:53:03 得分 10

--我写的,思路就是先用top找出第一条记录.再求出满足条件的记录(除第一条外),并排序  
  select   *    
  from    
  (  
  select   top   1   *  
  from   ta  
  union  
  select   ''   as   a,   t1.b,   t1.c    
  from   ta   as   t1,   (select   top   1   t2.b,   t2.c  
  from   ta   as   t2  
  where   t2.a='x'  
  )   t3  
  where   t1.a='x'    
  and   (t1.b<>t3.b     or   t1.c<>t3.c)  
  )   tt  
  order   by   tt.a   descTop

相关问题

  • 如何消除重复记录(用distinct不可以)
  • 如何用distinct对两列进行消除重复行的操作
  • 消除重复记录?
  • 消除重复并汇总
  • access中如何用distinct消除重复记录的同时又能选取多个字段值?
  • 如何消除数组中重复项
  • 请问,如何消除一个表中重复的记录?
  • SQLServer表中如何消除重复?还有问题。
  • 怎样消除表中的重复记录
  • 如何消除多个字段重复的记录?

关键词

  • 字段
  • 返回
  • 问题
  • 结果集
  • 所有
  • tablename where
  • case
  • select

得分解答快速导航

  • 帖主:zdnetchina
  • paoluo
  • paoluo
  • filebat

相关链接

  • SQL Server类图书

广告也精彩

反馈

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