表A有如下数据
用户 报销次数
1005 3
1002 2
1004 2
1001 1
1003 1表B有如下数据
用户 报销金额
1001 100
1002 90
1002 110
1003 100
1004 80
1004 90
1005 100
1005 120
1005 130现在表B是按照用户列数字递增排序,环境是oracle9i,请教如何使得表B的用户列按照表A的用户列的顺序排序?
(数据量非常大,取5个用户例子)
如:
1005 100
1005 120
1005 130
1002 90
1002 110
1004 80
1004 90
1001 100
1003 100
用户 报销次数
1005 3
1002 2
1004 2
1001 1
1003 1表B有如下数据
用户 报销金额
1001 100
1002 90
1002 110
1003 100
1004 80
1004 90
1005 100
1005 120
1005 130现在表B是按照用户列数字递增排序,环境是oracle9i,请教如何使得表B的用户列按照表A的用户列的顺序排序?
(数据量非常大,取5个用户例子)
如:
1005 100
1005 120
1005 130
1002 90
1002 110
1004 80
1004 90
1001 100
1003 100
declare @表A table (用户 int,报销次数 int)
insert into @表A
select 1005,3 union all
select 1002,2 union all
select 1004,2 union all
select 1001,1 union all
select 1003,1declare @表B table (用户 int,报销金额 int)
insert into @表B
select 1001,100 union all
select 1002,90 union all
select 1002,110 union all
select 1003,100 union all
select 1004,80 union all
select 1004,90 union all
select 1005,100 union all
select 1005,120 union all
select 1005,130select b.* from @表B b
left join
(select row_number() over
(order by 报销次数 desc,用户) as rownum,* from @表A) a
on b.用户=a.用户
order by a.rownum,b.报销金额/*
用户 报销金额
----------- -----------
1005 100
1005 120
1005 130
1002 90
1002 110
1004 80
1004 90
1001 100
1003 100
*/
不过如果在oracle环境中,语句该怎么写呢?
新手刚接触数据库不久