数据如表所示:
    HDSJ_ID    HDSJ_YPPH
       1        #8-9-5
       2        #8-9-9
       3        #8-9-5
       4        #6-5
       5        #8-9-9
       6        #6-5现在我要提到这样的:请问怎么写SQL语句?因为我写的要么就是得出不重复的但排序不对,排序对的又变成重复的
 HDSJ_YPPH
  #6-5
  #8-9-9
  #8-9-5  这是我写的SQL语句:这个得到不重复的但排序不是我想要的: 
 select top 6 HDSJ_YPPH from TB_HYDSJ where HYDSJ_TP = 4 group by HDSJ_YPPH
                     
这种排序是我想要的但变成重复的记录:
select top 6 HDSJ_YPPH,HDSJ_ID from TB_HYDSJ where HYDSJ_TP = 4 group by HDSJ_YPPH,HDSJ_ID order by HDSJ_ID desc

解决方案 »

  1.   

    select top 6 HDSJ_YPPH from TB_HYDSJ where HYDSJ_TP = 4 group by HDSJ_YPPH order by HDSJ_ID不知道是不是你想要的。没太明白你是打算按那个分组,按那个排序,想好了再写也许好点。
      

  2.   

    select distinct HDSJ_YPPH from yourtable order by HDSJ_YPPH
      

  3.   


    DECLARE @T TABLE (cola INT,colb VARCHAR(32))
    INSERT INTO @T
    SELECT 1,'#8-9-5' UNION ALL
    SELECT 2,'#8-9-9' UNION ALL
    SELECT 3,'#8-9-5' UNION ALL
    SELECT 4,'#6-5' UNION ALL
    SELECT 6,'#8-9-9' UNION ALL
    SELECT 7,'#6-5' UNION ALL
    SELECT 8,'#8-9-9' UNION ALL
    SELECT 9,'#8-9-7'select distinct min(cola) cola,colb from @t group by colb order by cola
      

  4.   


    DECLARE @T TABLE (cola INT,colb VARCHAR(32))
    INSERT INTO @T
    SELECT 1,'#8-9-5' UNION ALL
    SELECT 2,'#8-9-9' UNION ALL
    SELECT 3,'#8-9-5' UNION ALL
    SELECT 4,'#6-5' UNION ALL
    SELECT 6,'#8-9-9' UNION ALL
    SELECT 7,'#6-5' UNION ALL
    SELECT 8,'#8-9-9' UNION ALL
    SELECT 9,'#8-9-7'select * from @T--result
    /*
    1 #8-9-5
    2 #8-9-9
    3 #8-9-5
    4 #6-5
    6 #8-9-9
    7 #6-5
    8 #8-9-9
    9 #8-9-7
    */select distinct min(cola) cola,colb from @t group by colb order by cola--result
    /*
    1 #8-9-5
    2 #8-9-9
    4 #6-5
    9 #8-9-7
    */select top 2 t.* 
    from (select distinct min(cola) cola,colb from @t group by colb ) t 
    order by t.cola-result
    /*
    1 #8-9-5
    2 #8-9-9
    */
      

  5.   

    这个是按什么规则排序的?HDSJ_YPPH 
      #6-5      最小
      #8-9-9    最大
      #8-9-5    中间
      

  6.   

       这个是按录入的先进后出,后进先出的顺序显示规则,但又要对HDSJ_YPPH进行分组,也就是说分组后再按先进后出,后进先出的原则显示。我的表里面有HDSJ_ID记录了数据进入库的先后顺序,但是分组后再按HDSJ_ID来排序时就得出重复记录