2017-03-17 79 views
1

我有一些SQL Server的麻烦。SQL Server ORDER BY - 排序排序方法

我在一列有这些号码:

|numbers 
|1 
|1 
|1 
|1 
|2 
|2 
|2 
|3 

我想订购这样的:

|numbers 
|1 
|2 
|3 
|1 
|2 
|1 
|2 
|1 

有没有人有什么想法?

回答

2

在子查询中使用row_number()

select number 
from (
    select number 
    , rn = row_number() over (
      partition by number 
      order by (select 1) 
      ) 
    from t 
) as s 
order by rn, number 

rextester演示:http://rextester.com/NNGS34159

结果

+--------+ 
| number | 
+--------+ 
|  1 | 
|  2 | 
|  3 | 
|  1 | 
|  2 | 
|  1 | 
|  2 | 
|  1 | 
+--------+ 
+0

非常感谢..这工作.. – Marc

+0

@Marc快乐的帮助! – SqlZim

0

行数和partion查询可以做到这一点。请通过它去..