1,例如我用下边语句SELECT City FROM dbo.LISTAreas AS la WHERE Pro LIKE '%河南%'查询,返回下边结果集。(注意,select查询默认是按id升序排序的)

2,下边语句中,加上group by去重复以后,就会打乱结果集的顺序(郑州市,跑到了最后边):

SELECT City FROM dbo.LISTAreas AS la WHERE Pro LIKE '%河南%' GROUP BY City

3,解决方法,用row_number()去重复,然后再用order by id asc排序

SELECT  city
FROM    ( SELECT    ROW_NUMBER() OVER ( PARTITION BY City ORDER BY id ASC ) AS allcount ,
                    id ,
                    city
          FROM      dbo.LISTAreas AS la
          WHERE     Pro LIKE '%河南%'
        ) AS temp
WHERE   allcount = 1
ORDER BY id ASC

---查询结果如下:

posted on 2014-04-09 16:35  学到老死  阅读(1518)  评论(0)    收藏  举报