[英]custom sort on oracle sql data set for Days
我有以下每个特定 ID 的数据集
No Id
1 1
2 1
3 1
4 1
1 2
2 2
3 2
4 2
我想对没有所需排序的列进行排序,例如如果我想从每个 ID 的第二行开始,数据将像这样显示
No Id
2 1
3 1
4 1
1 1
2 2
3 2
4 2
1 2
所以如果想从任何一行开始,它将像上面一样排序
要从第二行开始,请尝试 Query#1 和 Query#2 从第三行开始。
create table mytable(No int, Id int);
insert into mytable values(1, 1);
insert into mytable values(2, 1);
insert into mytable values(3, 1);
insert into mytable values(4, 1);
insert into mytable values(1, 2);
insert into mytable values(2, 2);
insert into mytable values(3, 2);
insert into mytable values(4, 2);
查询#1
with cte as
(
select no,id,row_number()over(partition by id order by rownum)rn from
(
select no,id from mytable where no=2
union all
select no,id from mytable where no<2
)t
)select no,id from cte
Output:
不 | ID |
---|---|
2 | 1 |
3 | 1 |
4 | 1 |
1 | 1 |
2 | 2 |
3 | 2 |
4 | 2 |
1 | 2 |
查询#2:
with cte as
(
select no,id,row_number()over(partition by id order by rownum)rn from
(
select no,id from mytable where no=3
union all
select no,id from mytable where no<3
)t
)select no,id from cte
Output:
不 | ID |
---|---|
3 | 1 |
4 | 1 |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
1 | 2 |
2 | 2 |
db<小提琴在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.