在SQL中不应该同时显示重复的值



我想显示一些数据,我的要求是重复的值不应该相邻显示。现在表中的数据是这样排列的

ID     Name
1   A
2   A
3   B
4   C
5   B
6   B
7   C
8   C
9   C

预期结果-应该在以下顺序

ID   Name
1   A
3   B
4   C
2   A
5   B
7   C
6   B
8   C
9   C

这可以使用ROW_NUMBER窗口函数来完成。

SELECT *, ROW_NUMBER() OVER (PARTITION BY Name ORDER BY ID) AS rn
FROM mytable
ORDER BY rn, Name

,db&lt的在小提琴

可以将row_number()直接放在order by中。我建议:

select t.*
from t
order by row_number() over (partition by name order by id),
name;

相关内容

  • 没有找到相关文章

最新更新