首页 > 解决方案 > 使用重复序列 sql server 排序

问题描述

我有一个看起来有点像这样的表:

Points      Sequence
----------  --------
100,001.00  0
100,002.00  0
100,003.00  0
100,004.00  0
100,005.00  1
100,006.00  1
100,007.00  1
100,008.00  1
100,009.00  2
100,010.00  2
100,011.00  2
100,012.00  2

有什么方法可以使用 order by 实现以下输出。

Points      Sequence
----------  --------
100,001.00  0
100,005.00  1
100,009.00  2
100,002.00  0
100,006.00  1
100,010.00  2
100,003.00  0
100,008.00  1
100,011.00  2
100,004.00  0
100,007.00  1
100,012.00  2

提前感谢您的帮助。

标签: sqlsql-server

解决方案


如果我理解正确,您想交错行,因此具有相同的行sequence分开的,而不是在结果集中相邻。

您可以row_number()order by子句中使用:

select t.*
from t
order by row_number() over (partition by sequence order by points),
         sequence;

推荐阅读