oracle - 结果列表 - 交换奇数索引处的数据与偶数索引处的数据
oracle - result list - exchange data at odd index with data at even index
我正在使用 oracle 10g,我有一个 returns 数据列表的查询。我需要 一个一个地更改结果列表的顺序。这是我需要的一个例子:
订单变更前:
id | name
1 | name1
2 | name2
3 | name3
4 | name4
5 | name5
订单变更后:
id | name
2 | name2
1 | name3
4 | name4
3 | name3
5 | name5
换句话说,我想交换奇数索引的数据和偶数索引的数据。有做这种工作的命令吗?
我认为,简单的方法是使用解析函数row_number
select *
from (select id, name, row_number() over(order by id) rn
from (select level id, 'name' || level name
from dual
connect by level <= 20)
order by rn)
order by decode(mod(rn, 2), 0, rn - 2, rn)
我正在使用 oracle 10g,我有一个 returns 数据列表的查询。我需要 一个一个地更改结果列表的顺序。这是我需要的一个例子:
订单变更前:
id | name
1 | name1
2 | name2
3 | name3
4 | name4
5 | name5
订单变更后:
id | name
2 | name2
1 | name3
4 | name4
3 | name3
5 | name5
换句话说,我想交换奇数索引的数据和偶数索引的数据。有做这种工作的命令吗?
我认为,简单的方法是使用解析函数row_number
select *
from (select id, name, row_number() over(order by id) rn
from (select level id, 'name' || level name
from dual
connect by level <= 20)
order by rn)
order by decode(mod(rn, 2), 0, rn - 2, rn)