0% found this document useful (0 votes)
30 views

PLSQL CLASS5

Uploaded by

krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

PLSQL CLASS5

Uploaded by

krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 14

ORACLE

SYNONYMS:
SQL> CREATE SYNONYM D FOR DEPT;

Synonym created.

SQL> SELECT * FROM D;

SQL> DROP SYNONYM D;


Synonym dropped.

SQL> CREATE SYNONYM DEPARTMENT FOR DEPT;

Synonym created.

SQL> SELECT * FROM DEPT;

DEPTNO DNAME LOC


---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

SQL> SELECT * FROM DEPARTMENT;

DEPTNO DNAME LOC


---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

RENAME IS DIFFERENT FROM SYNONYM.

SUBQUERIES:
QUERY INSIDE A QUERY IS CALLED SUBQUERY.

THE SUBQUERY (INNER QUERY)EXECUTES ONCE BEFORE THE MAIN QUERY.

THE RESULT OF THE SUBQUERY IS USED BY THE MAIN QUERY(OUTER QUERY).

SINGLE-ROW SUBQUERIES:
RETURN ONLY ONE ROW.

USE SINGLE ROW COMPARISON OPERATORS =,>,>=,<,<=,<>

SELECT MINIMUM SALARY OF THE EMPLOYEE.


1 STRUCTURED QUERY LANGUAGE
ORACLE
2

SELECT ENAME,JOB,SAL
FROM EMP
WHERE SAL = (SELECT MIN(SAL) FROM EMP)

SELECT MAXIMUM SALARY OF THE EMPLOYEE.

SELECT ENAME,JOB,SAL
FROM EMP
WHERE SAL = (SELECT MAX(SAL) FROM EMP)

SQL> SELECT MAX(SAL) FROM EMP;

MAX(SAL)
----------
5000

SQL> SELECT * FROM EMP WHERE SAL = 5000;

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7839 KING PRESIDENT 17-NOV-81 5000 10

SQL> SELECT * FROM EMP WHERE SAL = (SELECT MAX(SAL) FROM EMP);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7839 KING PRESIDENT 17-NOV-81 5000 10

1* SELECT * FROM EMP WHERE SAL = (SELECT MIN(SAL) FROM EMP)

SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20

NULL VALUE SUBQUERY:


SQL> SELECT * FROM EMP WHERE JOB=(SELECT JOB FROM EMP WHERE ENAME='SMYTHE');

no rows selected

MULTI-ROW SUBQURIES:
SELECT * FROM EMP
WHERE SAL =(SELECT SAL FROM EMP);

2 STRUCTURED QUERY LANGUAGE


ORACLE
3

WHERE SAL =(SELECT SAL FROM EMP)


*
ERROR at line 2:
ORA-01427: single-row sub query returns more than one row

RETURN MORE THAN ONE ROW.USE MULTIPLE-ROW COMPARISON OPERATORS.

IN , ANY , ALL OPERATORS.


SELECT * FROM EMP
WHERE SAL IN (SELECT SAL FROM EMP);

WHICH DISPLAYS ALL THE ROWS OF EMP, THAT IS IT IS SAME AS SELECT * FROM EMP;

=ANY OPERATOR AND = SOME:


SELECT * FROM EMP
WHERE SAL = ANY (SELECT SAL FROM EMP);

HERE ‘IN’ IS SAME AS ‘= ANY’ AND ‘= SOME’.

WHICH DISPLAYS ALL THE ROWS OF EMP. THAT IS ‘= ANY’ MEANS ‘IN’

SQL> SELECT * FROM EMP

2 WHERE SAL IN (SELECT SAL FROM EMP);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10

14 rows selected.

1 SELECT * FROM EMP


2* WHERE SAL = ANY (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
3 STRUCTURED QUERY LANGUAGE
ORACLE
4

7934 MILLER CLERK 7782 23-JAN-82 1300 10


7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10

14 rows selected.

1 SELECT * FROM EMP


2* WHERE SAL = SOME (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10

14 rows selected.

<ANY OR < SOME OPERATOR:


SELECT * FROM EMP
WHERE SAL < ANY (SELECT SAL FROM EMP);

< ANY MEANS LESS THAN THE MAXIMUM.HERE MAX SALARY IS 5000. EXCEPT THAT EVERY SAL
DISPALYED.

1 SELECT * FROM EMP


2* WHERE SAL < ANY (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
4 STRUCTURED QUERY LANGUAGE
ORACLE
5

7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30


7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

1 SELECT * FROM EMP


2* WHERE SAL < SOME (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

2ND HIGHEST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3* WHERE SAL < ANY (SELECT SAL FROM EMP))
5 STRUCTURED QUERY LANGUAGE
ORACLE
6

SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20

3RD HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < ANY (SELECT SAL FROM EMP
4 WHERE SAL < ANY (SELECT SAL FROM EMP
5* )))
6 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20

4TH HIGHEST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < ANY (SELECT SAL FROM EMP
4 WHERE SAL < ANY (SELECT SAL FROM EMP
5 WHERE SAL < ANY (SELECT SAL FROM EMP
6* ))))
7 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

5TH HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < ANY (SELECT SAL FROM EMP
4 WHERE SAL < ANY (SELECT SAL FROM EMP
5 WHERE SAL < ANY (SELECT SAL FROM EMP
6 WHERE SAL < ANY (SELECT SAL FROM EMP
7* )))))
8 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09-JUN-81 2450 10

AND SO ON……………………………………

6 STRUCTURED QUERY LANGUAGE


ORACLE
7

2ND HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < SOME (SELECT SAL FROM EMP
4* ))

SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20

3RD HIGHEST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < SOME (SELECT SAL FROM EMP
4 WHERE SAL < SOME (SELECT SAL FROM EMP
5* )))
6 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20

4TH HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < SOME (SELECT SAL FROM EMP
4 WHERE SAL < SOME (SELECT SAL FROM EMP
5 WHERE SAL < SOME (SELECT SAL FROM EMP
6* ))))
7 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

5TH HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < SOME (SELECT SAL FROM EMP
4 WHERE SAL < SOME (SELECT SAL FROM EMP
5 WHERE SAL < SOME (SELECT SAL FROM EMP
6 WHERE SAL < SOME (SELECT SAL FROM EMP
7 STRUCTURED QUERY LANGUAGE
ORACLE
8

7* )))))
8 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7782 CLARK MANAGER 7839 09-JUN-81 2450 10

>ANY OR > SOME OPERATOR:


SELECT * FROM EMP
WHERE SAL > ANY (SELECT SAL FROM EMP) ;

> ANY MEANS MORE THAN THE MINIMUM.HERE MIN SALARY IS 800. EXCEPT THAT EVERY SAL DISPALYED

1 SELECT * FROM EMP


2* WHERE SAL > ANY (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

1 SELECT * FROM EMP


2* WHERE SAL > SOME (SELECT SAL FROM EMP)
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
8 STRUCTURED QUERY LANGUAGE
ORACLE
9

7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30


7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

2ND LEAST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3* WHERE SAL > ANY (SELECT SAL FROM EMP))
4 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3* WHERE SAL > SOME (SELECT SAL FROM EMP))
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30

3RD LEAST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > ANY (SELECT SAL FROM EMP
4 WHERE SAL > ANY (SELECT SAL FROM EMP
5* )))
6 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7876 ADAMS CLERK 7788 23-MAY-87 1100 20

9 STRUCTURED QUERY LANGUAGE


ORACLE
10

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > SOME (SELECT SAL FROM EMP
4 WHERE SAL > SOME (SELECT SAL FROM EMP
5* )))

SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7876 ADAMS CLERK 7788 23-MAY-87 1100 20

4TH LEAST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > ANY (SELECT SAL FROM EMP
4 WHERE SAL > ANY (SELECT SAL FROM EMP
5 WHERE SAL > ANY (SELECT SAL FROM EMP
6* ))))
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > SOME (SELECT SAL FROM EMP
4 WHERE SAL > SOME (SELECT SAL FROM EMP
5 WHERE SAL > SOME (SELECT SAL FROM EMP
6* ))))
7 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

AND SO ON………………………………….

<ALL OPERATOR:
< ALL MEANS LESS THAN MINIMUM.

SELECT * FROM EMP


WHERE SAL < ALL (SELECT SAL FROM EMP);

10 STRUCTURED QUERY LANGUAGE


ORACLE
11

no rows selected

SQL> SELECT * FROM EMP


2 WHERE SAL < ALL (SELECT SAL FROM EMP);

no rows selected

SQL> SELECT * FROM EMP


2 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

2ND HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3* WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP))
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20

3RD HIGHEST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP
11 STRUCTURED QUERY LANGUAGE
ORACLE
12

4 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP


5* )))
6 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7566 JONES MANAGER 7839 02-APR-81 2975 20

4TH HIGHEST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MAX(SAL) FROM EMP
3 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP
4 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP
5 WHERE SAL < ALL (SELECT MAX(SAL) FROM EMP
6* ))))
7 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30

AND SO ON…………………

>ALL OPERATOR:
> ALL MEANS GREATER THAN MAXIMUM.

SELECT * FROM EMP


WHERE SAL > ALL (SELECT SAL FROM EMP);
no rows selected

SELECT * FROM EMP


WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP);

HERE EXCEPT MIN SALARY ALL SALARIES DISPLAYS.

SQL> SELECT * FROM EMP


2 WHERE SAL > ALL (SELECT SAL FROM EMP);

no rows selected

1 SELECT * FROM EMP


2* WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP)
3 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
12 STRUCTURED QUERY LANGUAGE
ORACLE
13

7566 JONES MANAGER 7839 02-APR-81 2975 20


7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

13 rows selected.

2ND LEAST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3* WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP))
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7900 JAMES CLERK 7698 03-DEC-81 950 30

3RD LEAST:

1 SELECT * FROM EMP


2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP
4 WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP
5* )))
6 /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7876 ADAMS CLERK 7788 23-MAY-87 1100 20

4TH LEAST:
1 SELECT * FROM EMP
2 WHERE SAL = (SELECT MIN(SAL) FROM EMP
3 WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP
4 WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP
5 WHERE SAL > ALL (SELECT MIN(SAL) FROM EMP
6* ))))
SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


13 STRUCTURED QUERY LANGUAGE
ORACLE
14

---------- ---------- --------- ---------- --------- ---------- ---------- ----------


7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30

AND SO ON…………….

YOU CAN USE SUBQUERY IN FROM CLAUSE:


SELECT * FROM (SELECT * FORM SAL);

SELECT * FROM (SELECT * FORM SAL ORDER BY SAL DESC );

SQL> SELECT * FROM (SELECT * FROM EMP);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10

14 rows selected.

1* SELECT * FROM (SELECT * FROM EMP ORDER BY SAL DESC )


SQL> /

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7839 KING PRESIDENT 17-NOV-81 5000 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7566 JONES MANAGER 7839 02-APR-81 2975 20
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7369 SMITH CLERK 7902 17-DEC-80 800 20

14 rows selected.

14 STRUCTURED QUERY LANGUAGE

You might also like