SELECT ename, NULLIF(deptno, 20) FROM SCOTT.emp;
SELECT
CASE WHEN deptno = 20
THEN NULL
ELSE
deptno
END
FROM SCOTT.emp
;
SELECT COALESCE(comm, sal) FROM SCOTT.emp;
select e1.ename,e2.ename
from scott.emp e1
cross join scott.emp e2;
SELECT deptno, ename, dname
FROM emp
NATURAL JOIN dept;
SELECT deptno, ename, dname
FROM emp
JOIN dept USING (deptno)
;
select d.deptno,e.ename
from scott.dept d
left outer join scott.emp e
on e.deptno = d.deptno
;
select d.deptno,e.ename
from scott.emp e
right outer join scott.dept d
on e.deptno = d.deptno
;
select d.deptno,e.ename
from scott.emp e
full outer join scott.dept d
on e.deptno = d.deptno
;
select d.deptno,e.ename
from scott.dept d
join scott.emp e
on e.deptno = d.deptno
;
CREATE TABLE annsal(empno NUMBER, peryear NUMBER);
INSERT INTO annsal (empno) SELECT empno FROM emp WHERE deptno = 10;
SELECT * FROM annsal;
EMPNO PERYEAR
7782
7839
7934
MERGE INTO annsal a
USING emp e
ON (a.empno = e.empno)
WHEN MATCHED THEN
UPDATE SET a.peryear = (e.sal *12 + NVL(e.comm,0))
WHEN NOT MATCHED THEN
INSERT (a.empno, a.peryear) VALUES (e.empno, e.sal *12 + NVL(e.comm,0))
;
SELECT * FROM annsal;
EMPNO PERYEAR
7782 29400
7839 60000
7934 15600
7902 36000
7900 11400
7521 15500
7654 16400
7566 35700
7844 18000
7499 19500
7698 34200
7788 36000
7369 9600
7876 13200
create table test(Nummer int,city varchar2(100) default 'Berlin');
insert into test(nummer,city) values(1,default);
update test set city = default where nummer = 1;
Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de