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

Sql去重复之------Group by语句***打乱结果集排序顺序的解决方法***(用ROW_NUMBER() OVER(PARTITION BY City ORDER BY id asc)去重复,兼排序)

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

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

Sql去重复之------Group by语句***打乱结果集排序顺序的解决方法***(用ROW_NUMBER() OVER(PARTITION BY City ORDER BY id asc)去重复,兼排序)

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

---查询结果如下:

Sql去重复之------Group by语句***打乱结果集排序顺序的解决方法***(用ROW_NUMBER() OVER(PARTITION BY City ORDER BY id asc)去重复,兼排序)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-25
  • 2022-12-23
  • 2022-01-01
  • 2021-12-13
猜你喜欢
  • 2021-07-06
  • 2021-06-01
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案