有一个表T1
现有phone_id,cust_id,cust_name,serv_id,region_code,region_name一共六个字段
我现在想按照region_code 的一定数量把数据加入到T2表中
比如 region = 1 的要 1000
region = 2 的要 5000等
T1表region = 1的数量是肯定远远大于需求数量的
但是region 等于其他数的时候不一定满足(例如 region =2 要5000个 表T1中只有4000 )那么不足的1000要添加到region =1 里
现在就是region = 1 的要2000
region = 2 的要4000
select count(1) into v_a from T1 where region_code = 2 group by region_code
v_b := 5000 - v_a;
if v_b < 0
insert into T2 select * from T1 where region_code = 2 and rownum <= 5000
else
v_c := v_c + abs(v_b);
insert into T2 select * from T1 where region_code = 2 and rownum <= v_a
insert into T2 select * from T1 where region_code = 1 and rownum <= v_c 由于region_code会有很多 所以不想按照上面的方法写
求助各位大神有没有新的简单的写法sql优化
现有phone_id,cust_id,cust_name,serv_id,region_code,region_name一共六个字段
我现在想按照region_code 的一定数量把数据加入到T2表中
比如 region = 1 的要 1000
region = 2 的要 5000等
T1表region = 1的数量是肯定远远大于需求数量的
但是region 等于其他数的时候不一定满足(例如 region =2 要5000个 表T1中只有4000 )那么不足的1000要添加到region =1 里
现在就是region = 1 的要2000
region = 2 的要4000
select count(1) into v_a from T1 where region_code = 2 group by region_code
v_b := 5000 - v_a;
if v_b < 0
insert into T2 select * from T1 where region_code = 2 and rownum <= 5000
else
v_c := v_c + abs(v_b);
insert into T2 select * from T1 where region_code = 2 and rownum <= v_a
insert into T2 select * from T1 where region_code = 1 and rownum <= v_c 由于region_code会有很多 所以不想按照上面的方法写
求助各位大神有没有新的简单的写法sql优化
5000,1000这种值是会根据需求改变的
然后以这个表为条件来写sql