You are on page 1of 7

*******

ORDER BY clause

It is used to sort or re-arrange the records in the result set. It is only used
with SELECT statement.

SYNTAX:
SELECT expressions
FROM tables
WHERE conditions
ORDER BY expression[ASCENDING|DESCENDING]

EG: SELECT *
FROM supplier
ORDER BY last_name;(WILL DO ASCENDING)

SELECT *
FROM supplier
ORDER BY last_name DESC;

GROUP BY clause

It is used to SELECT statement to collect data from multiple records and group the
result by one or more columns.

SYNTAX:

SELECT expression1,expression2,....expressionn,
aggregrate function(aggregrate_function)
FROM tables
WHERE conditions
GROUP BY expression1,expression2,expressionN;

EG: 1. SUM function

SELECT item, SUM(sale) AS "Total sales"


FROM salesdepartement
GROUP BY item;

2. COUNT function

SELECT state, COUNT(* AS "Number of customers")


FROM customers
WHERE salary>10000
GROUP BY state;

3.MIN function

SELECT departement
MIN(salary) AS "Lowest salary"
FROM employees
GROUOP BY departement;

4. MAX function

SELECT depatment
MAX(salary) AS "Highest salary"
FROM employees
GROUP BY department;

EXTRA FUNCTIONS

# GREATEST FUNCTION

SYNTAX: GREATEST(EXP1,EXP2,.......)

EG: SELECT GREATEST(10,20,30) FROM DUAL;

# LEAST FUNCTION

SYNTAX: LEAST(EXP1,EXP2....)
EG: SELECT LEAST(1000,2000,3000) FROM DUAL;

# VSIZE:-

Syntax: VSIZE(COL?EXP)
EG: SELECT ENAME,VSIZE(ENAME) FROM EMP;

# SOUNDEX FUNCTION:-

Syntax: SOUNDEX(CHAR)
EG: SELECT ENAME FROM EMP
WHERE SOUNDEX(ENAME)=SOUNDEX('SMYTHE');

# DISTINCT FUNCTIONS

Syntax:- DISTINCT(COL/EXP)

# LOWER FUNCTION

syntax:- LOWER(COL/EXP)

# UPPER FUNCTION:-

Syntax:- UPPER(COL/EXP)

# INITCAP FUNCTION:-

Syntax:- INITCAP(COL/EXP)

# CONCAT:-

Syntax:- CONCAT(COL/EXP)

# SUBSTR:-

Syntax:- SUBSTR(COL/EXP,M,N)

M:- Decides position


N:- Decides Value
SQL> SELECT *
2 FROM emp
3 ORDER BY SAL;

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 12-JAN-83 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 09-DEC-82 3000
20
7902 FORD ANALYST 7566 03-DEC-81 3000
20
7839 KING PRESIDENT 17-NOV-81 5000
10

14 rows selected.

SQL> SELECT *
2 FROM emp
3 ORDER BY SAL DESC;

EMPNO ENAME JOB MGR HIREDATE SAL COMM


DEPTNO
---------- ---------- --------- ---------- --------- ---------- ----------
----------
7839 KING PRESIDENT 17-NOV-81 5000
10
7902 FORD ANALYST 7566 03-DEC-81 3000
20
7788 SCOTT ANALYST 7566 09-DEC-82 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 12-JAN-83 1100
20
7900 JAMES CLERK 7698 03-DEC-81 950
30
7369 SMITH CLERK 7902 17-DEC-80 800
20

14 rows selected.

SQL> SELECT SAL


2 MAX(SAL)
3 FROM emp
4 ;
MAX(SAL)
*
ERROR at line 2:
ORA-00923: FROM keyword not found where expected

SQL> SELECT SAL


2 MAX(SAL)
3 FROM emp;
MAX(SAL)
*
ERROR at line 2:
ORA-00923: FROM keyword not found where expected

SQL> SELECT MAX(SAL)


2 FEOM emp;
FEOM emp
*
ERROR at line 2:
ORA-00923: FROM keyword not found where expected

SQL> SELECT MAX(SAL)


2 FROM emp;

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

SQL> SELECT DEPTNO, MAX(SAL)


2 FROM EMP
3 GROUP BY DEPTNO;

DEPTNO MAX(SAL)
---------- ----------
30 2850
20 3000
10 5000

SQL> SELECT DEPTNO, ENAME, MAX(SAL)


2 FROM emp
3 GROUP BY DEPTNO;
SELECT DEPTNO, ENAME, MAX(SAL)
*
ERROR at line 1:
ORA-00979: not a GROUP BY expression

SQL> SELECT DEPTNO, MAX(SAL), MIN(SAL)


2 FROM emp
3 GROUP BY DEPTNO;

DEPTNO MAX(SAL) MIN(SAL)


---------- ---------- ----------
30 2850 950
20 3000 800
10 5000 1300

SQL> SELECT DEPTNO, MAX(SAL), MIN(SAL), AVG(SAL)


2 FROM emp
3 GROUP BY DEPTNO;

DEPTNO MAX(SAL) MIN(SAL) AVG(SAL)


---------- ---------- ---------- ----------
30 2850 950 1566.66667
20 3000 800 2175
10 5000 1300 2916.66667

SQL> SELECT JOB, MAX(SAL)


2 FROM emp
3 where JOB='CLERK';
SELECT JOB, MAX(SAL)
*
ERROR at line 1:
ORA-00937: not a single-group group function

SQL> SELECT MAX(SAL)


2 FROM emp
3 where JOB='CLERK';

MAX(SAL)
----------
1300

SQL> SELECT ENAME,MAX(SAL)


2 FROM emp
3 where JOB='CLERK';
SELECT ENAME,MAX(SAL)
*
ERROR at line 1:
ORA-00937: not a single-group group function

SQL> SELECT ENAME GRATEST(SAL)


2 FROM emp;
SELECT ENAME GRATEST(SAL)
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

SQL> SELECT ENAME GREATEST(SAL)


2 FROM emp;
SELECT ENAME GREATEST(SAL)
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

SQL> SELECT ENAME GREATEST(SAL)


2 FROM EMP;
SELECT ENAME GREATEST(SAL)
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

SQL> SELECT ENAME, GREATEST(SAL)


2 FROM EMP;

ENAME GREATEST(SAL)
---------- -------------
SMITH 800
ALLEN 1600
WARD 1250
JONES 2975
MARTIN 1250
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
TURNER 1500
ADAMS 1100
JAMES 950
FORD 3000
MILLER 1300

14 rows selected.

SQL> SELECT ENAME, INITCAP(ENAME)


2 FROM EMP;

ENAME INITCAP(EN
---------- ----------
SMITH Smith
ALLEN Allen
WARD Ward
JONES Jones
MARTIN Martin
BLAKE Blake
CLARK Clark
SCOTT Scott
KING King
TURNER Turner
ADAMS Adams
JAMES James
FORD Ford
MILLER Miller

14 rows selected.

SQL> SELECT SUBSTR('ISHI THAKUR',3,2)


2 FROM DUAL;

SU
--
HI

SQL> SELECT SUBSTR('ISHI THAKUR',-3,2)


2 FROM DUAL;

SU
--

You might also like