SQL 服务器 ORDER BY - 顺序排序方法
SQL Server ORDER BY - Sequencing ordering method
我在一列中有这些数字:
|numbers
|1
|1
|1
|1
|2
|2
|2
|3
我想这样订购:
|numbers
|1
|2
|3
|1
|2
|1
|2
|1
有没有人有什么想法?
行数和分区查询都可以..请过一遍..
在子查询中使用 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 |
+--------+
我在一列中有这些数字:
|numbers
|1
|1
|1
|1
|2
|2
|2
|3
我想这样订购:
|numbers
|1
|2
|3
|1
|2
|1
|2
|1
有没有人有什么想法?
行数和分区查询都可以..请过一遍..
在子查询中使用 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 |
+--------+