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
---查询结果如下:
浙公网安备 33010602011771号