Select top 5 title,Digg from Table where Delect=False order by Digg Desc其中字段Digg为数字类型,非主键。有重复。问题:如果查询top 5 ,前5个里面的Digg没有重复的话,正常显示,如果top 5 里面有重复的话,会把所有都显示出来,怎么解决这个问题?谢谢

解决方案 »

  1.   

    WITH TIES指定从基本结果集中返回附加的行,这些行包含与出现在 TOP n (PERCENT) 行最后的 ORDER BY 列中的值相同的值。如果指定了 ORDER BY 子句,则只能指定 TOP ...WITH TIES。
    Select top 5 with ties title,Digg  from  Table where Delect=False order by Digg Desc
      

  2.   

    SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。按照您说的,提示出错
      

  3.   

    select * from Table where (Digg in Select  distinct top   5  Digg ,min(title)  from   Table   where   Delect=False   order   by   Digg   Desc)
    MSSQL调试通过
    结果是:
     查找所有的数据在table ,条件是 Digg 是最大的5 个 比如:title  digg
    1      45
    2      45
    3      45
    4      73
    5      45
    6      44
    7      43
    8      41
    9      42
    10     2
    11     15
    12     23
    结果:1      45
    2      45
    3      45
    4      73
    5      45
    6      44
    7      43
    9      42
    不知道是否合符你的要求
     
      

  4.   

    where 这个条件或许需要改动!我没有这个字段,所以就没有测试!
    改进:
    select   *   from   Table   where   (Digg   in   Select     distinct   top       5     Digg     from       Table      order       by       Digg       Desc)   where       Delect=False