- •Раздел 1 Утилита sql*Plus, простые запросы выборки столбцов и строк
- •7839 King president 17-nov-81 5000 10
- •7900 James 950
- •7 Rows selected.
- •7 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •9 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •6 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •7369 Smith 800
- •Функции Oracle sql
- •9 Rows selected.
- •Раздел 3 Выборка данных из нескольких таблиц
- •20 Smith 800
- •30 James 950
- •10 Miller 1300
- •6 Rows selected.
- •6 Rows selected.
- •6 Rows selected.
- •8 Rows selected.
- •8 Rows selected.
- •14 Rows selected.
- •9 Rows selected.
- •9 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •6 Rows selected.
- •15 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •14 Rows selected.
- •7 Rows selected.
- •Раздел 4 Другие команды языка манипулирования данными dмl и обработка транзакций
- •7902 Ford analyst 7566 03-dec-81 3000 20
- •7788 Scott analyst 7566 09-dec-82 3000 20
- •Раздел 5 Создание и изменение таблиц средствами ddl
- •Раздел 6 Другие объекты базы данных
- •7934 Miller 10
- •16 Rows selected.
6 Rows selected.
Q3_9
Сотрудники, имеющие хотя бы одного подчиненного
SQL> select EMPNO,ename,job,DEPTNO
from EMP x
where exists (select 1 from EMP
where EMP.mgr = x.EMPNO)
order by DEPTNO;
EMPNO ENAME JOB DEPTNO
--------- ---------- --------- ----------
7839 KING PRESIDENT 10
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
7788 SCOTT ANALYST 20
7902 FORD ANALYST 20
7698 BLAKE MANAGER 30
6 Rows selected.
Q3_10 Сотрудники, не имеющие подчиненных.
NOT IN ничего не выбирает, так как есть NULL значение
SQL> select EMPno,ename,job,DEPTno
from EMP
where EMPno not in (select mgr from EMP);
no rows selected
Правильно так:
SQL> select EMPno,ename,job,DEPTno
from EMP
where EMPno not in (select nvl(mgr,0) from EMP);
EMPNO ENAME JOB DEPTNO
---------- ---------- --------- ----------
7654 MARTIN SALESMAN 30
7499 ALLEN SALESMAN 30
7844 TURNER SALESMAN 30
7900 JAMES CLERK 30
7521 WARD SALESMAN 30
7369 SMITH CLERK 20
7876 ADAMS CLERK 20
7934 MILLER CLERK 10
8 Rows selected.
Q3_11
Список сотрудников , не имеющих подчиненных
SQL> select EMPNO,ename,job,DEPTNO
from EMP x
where not exists (select mgr from EMP
where mgr = x.EMPNO)
order by DEPTNO;
EMPNO ENAME JOB DEPTNO
--------- ---------- --------- ----------
7934 MILLER CLERK 10
7369 SMITH CLERK 20
7876 ADAMS CLERK 20
7654 MARTIN SALESMAN 30
7499 ALLEN SALESMAN 30
7844 TURNER SALESMAN 30
7900 JAMES CLERK 30
7521 WARD SALESMAN 30
