drop table emp1;
drop table emp2;
create table emp1(empno number, ename varchar2(100));
create table emp2(empno1 number, ename1 varchar2(100),
empno2 number, ename2 varchar2(100));
insert into emp1 values(1,'KING');
insert into emp1 values(2,'BLAKE');
insert into emp1 values(3,'CLARK');
insert into emp1 values(4,'JONES');
insert into emp1 values(5,'SCOTT');
insert into emp1 values(6,'FORD');
insert into emp1 values(7,'SMITH');
insert into emp1 values(8,'ALLEN');
insert into emp1 values(9,'WARD');
insert into emp1 values(10,'MARTIN');
insert into emp1 values(11,'SIVA');
commit;
select empno,ename,
row_number() over(order by empno),
count(1) over() c
from emp1;
select empno,ename,
row_number() over(order by empno),
count(1) over() c,
round(count(1) over()/2) c
from emp1;
select empno,ename,
row_number() over(order by empno) r,
round(count(1) over()/2) c,
round(count(1) over()/2)-row_number() over(order by empno) d
from emp1;
with d as (select empno,ename,
round(count(1) over()/2)-row_number() over(order by empno) c
from emp1),
d1 as (select empno,ename,c from d where c>=0),
d2 as (select empno,ename,abs(c) c from d where c<0)
select * from d1,d2 where d1.c=d2.c(+);
with d as (select empno,ename,
round(count(1) over()/2)-row_number() over(order by empno) c
from emp1),
d1 as (select empno,ename,c from d where c>=0),
d2 as (select empno,ename,abs(c) c from d where c<0)
select d1.empno,d1.ename,d2.empno,d2.ename from d1,d2 where d1.c=d2.c(+);
insert into emp2
with d as (select empno,ename,
round(count(1) over()/2)-row_number() over(order by empno) c
from emp1),
d1 as (select empno,ename,c from d where c>=0),
d2 as (select empno,ename,abs(c) c from d where c<0)
select d1.empno,d1.ename,d2.empno,d2.ename from d1,d2 where d1.c=d2.c(+)
order by d1.empno ;
select * from emp2;
No comments:
Post a Comment