You are on page 1of 11

ANSWER NO-1

SQL>
2
Enter
old
new

SELECT * FROM EMP


WHERE ENAME=UPPER('&ENAME');
value for ename: Smith
2: WHERE ENAME=UPPER('&ENAME')
2: WHERE ENAME=UPPER('Smith')

EMPNO ENAME
JOB
MGR HIREDATE
SAL
CO
MM
DEPTNO
---------- ---------- --------- ---------- ----------------- ---------- --------- ---------7369 SMITH
CLERK
7902 17-12-80 12:00:AM
800
20
================================================================================
===========
ANSWER NO-2
SQL> SELECT UPPER(ENAME) ENAME,INITCAP(JOB) JOB,LENGTH(ENAME) FROM EMP
2 WHERE ENAME LIKE'S%' OR ENAME LIKE 'J%';
ENAME
---------SMITH
JONES
SCOTT
JAMES

JOB
LENGTH(ENAME)
--------- ------------Clerk
5
Manager
5
Analyst
5
Clerk
5

================================================================================
============
ANSWER NO-3
1 SELECT CONCAT(ENAME,(CONCAT('WORKSAS',JOB))) FROM EMP;
CONCAT(ENAME,(CONCAT('WORK
-------------------------SMITHWORKSASCLERK
ALLENWORKSASSALESMAN
WARDWORKSASSALESMAN
JONESWORKSASMANAGER
MARTINWORKSASSALESMAN
BLAKEWORKSASMANAGER
CLARKWORKSASMANAGER
SCOTTWORKSASANALYST
KINGWORKSASPRESIDENT
TURNERWORKSASSALESMAN
ADAMSWORKSASCLERK
JAMESWORKSASCLERK
FORDWORKSASANALYST
MILLERWORKSASCLERK
14 rows selected.
================================================================================
===========

ANSWER NO-4
SQL> SELECT * FROM EMP
2 WHERE ENAME LIKE'__L%';
EMPNO ENAME
MM
DEPTNO
---------- ----------- ---------7499 ALLEN
00
30
7934 MILLER
10

JOB

MGR HIREDATE

SAL

CO

--------- ---------- ----------------- ---------- -------SALESMAN

7698 20-02-81 12:00:AM

1600

CLERK

7782 23-01-82 12:00:AM

1300

================================================================================
===========
ANSWER NO-5
SQL> SELECT DNAME,(LENGTH(DNAME)-LENGTH(REPLACE(DNAME,'E',NULL)))
2 COUNT FROM DEPT;
DNAME
COUNT
-------------- ---------ACCOUNTING
0
RESEARCH
2
SALES
1
OPERATIONS
1
================================================================================
===========
ANSWER NO-6
SQL> SELECT ENAME,ROUND(SAL*1.15) FROM EMP;
ENAME
ROUND(SAL*1.15)
---------- --------------SMITH
920
ALLEN
1840
WARD
1438
JONES
3421
MARTIN
1438
BLAKE
3278
CLARK
2818
SCOTT
3450
KING
5750
TURNER
1725
ADAMS
1265
JAMES
1093
FORD
3450
MILLER
1495
14 rows selected.
================================================================================
===========
ANSWER NO-7

SQL> SELECT ENAME,JOB,SAL,RPAD('X',ROUND(SAL/100),'X') FROM EMP;


ENAME
JOB
SAL
---------- --------- ---------RPAD('X',ROUND(SAL/100),'X')
-------------------------------------------------------------------SMITH
CLERK
800
XXXXXXXX
ALLEN
SALESMAN
XXXXXXXXXXXXXXXX

1600

WARD
SALESMAN
XXXXXXXXXXXXX

1250

JONES
MANAGER
2975
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MARTIN
SALESMAN
XXXXXXXXXXXXX

1250

BLAKE
MANAGER
2850
XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CLARK
MANAGER
2450
XXXXXXXXXXXXXXXXXXXXXXXXX
SCOTT
ANALYST
3000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
KING
PRESIDENT
5000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
TURNER
SALESMAN
XXXXXXXXXXXXXXX

1500

ADAMS
CLERK
XXXXXXXXXXX

1100

JAMES
CLERK
XXXXXXXXXX

950

FORD
ANALYST
3000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
MILLER
CLERK
XXXXXXXXXXXXX

1300

14 rows selected.
================================================================================
================
ANSWER NO-8
SQL> SELECT * FROM EMP
2 WHERE MOD(EMPNO,2)!=0;

EMPNO ENAME
MM
DEPTNO
---------- ----------- ---------7369 SMITH
20
7499 ALLEN
00
30
7521 WARD
00
30
7839 KING
10

JOB

MGR HIREDATE

SAL

CO

--------- ---------- ----------------- ---------- -------CLERK

7902 17-12-80 12:00:AM

800

SALESMAN

7698 20-02-81 12:00:AM

1600

SALESMAN

7698 22-02-81 12:00:AM

1250

17-11-81 12:00:AM

5000

PRESIDENT

================================================================================
===============
ANSWER NO-9
SQL> SELECT ENAME,HIREDATE,MONTHS_BETWEEN(SYSDATE,HIREDATE) FROM EMP
2 WHERE MONTHS_BETWEEN(SYSDATE,HIREDATE)>340;
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

HIREDATE
MONTHS_BETWEEN(SYSDATE,HIREDATE)
----------------- -------------------------------17-12-80 12:00:AM
392.892849
20-02-81 12:00:AM
390.796075
22-02-81 12:00:AM
390.731559
02-04-81 12:00:AM
389.37672
28-09-81 12:00:AM
383.538011
01-05-81 12:00:AM
388.408978
09-06-81 12:00:AM
387.150914
09-12-82 12:00:AM
369.150914
17-11-81 12:00:AM
381.892849
08-09-81 12:00:AM
384.183172
12-01-83 12:00:AM
368.05414
03-12-81 12:00:AM
381.344462
03-12-81 12:00:AM
381.344462
23-01-82 12:00:AM
379.699301

14 rows selected.
================================================================================
===============
ANSWER NO-10
SQL> SELECT ENAME,JOB,SAL,GRADE,DECODE(GRADE,'1',SAL*1.4,
2 '2',SAL*1.3,'3',SAL*1.2,'4',SAL*1.1,'5',SAL*1) "NEW SAL" FROM EMP,SALGRADE
3 WHERE SAL BETWEEN LOSAL AND HISAL;
ENAME
---------SMITH
ADAMS
JAMES
WARD
MARTIN
MILLER
ALLEN
TURNER
JONES

JOB
SAL
GRADE
NEW SAL
--------- ---------- ---------- ---------CLERK
800
1
1120
CLERK
1100
1
1540
CLERK
950
1
1330
SALESMAN
1250
2
1625
SALESMAN
1250
2
1625
CLERK
1300
2
1690
SALESMAN
1600
3
1920
SALESMAN
1500
3
1800
MANAGER
2975
4
3272.5

BLAKE
CLARK
SCOTT
FORD
KING

MANAGER
MANAGER
ANALYST
ANALYST
PRESIDENT

2850
2450
3000
3000
5000

4
4
4
4
5

3135
2695
3300
3300
5000

14 rows selected.
================================================================================
==================
ANSWER NO-11
1 SELECT ENAME,HIREDATE,TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE,6),'MONDAY'),'""F
MDay,"the"FMDDSPTH
SQL>
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

HIREDATE
----------------17-12-80 12:00:AM
20-02-81 12:00:AM
22-02-81 12:00:AM
02-04-81 12:00:AM
28-09-81 12:00:AM
01-05-81 12:00:AM
09-06-81 12:00:AM
09-12-82 12:00:AM
17-11-81 12:00:AM
08-09-81 12:00:AM
12-01-83 12:00:AM
03-12-81 12:00:AM
03-12-81 12:00:AM
23-01-82 12:00:AM

REVIEW
--------------------------------------------Monday,theTWENTY-SECOND OFJUNE ,1981
Monday,theTWENTY-FOURTH OFAUGUST ,1981
Monday,theTWENTY-FOURTH OFAUGUST ,1981
Monday,theFIFTH OFOCTOBER ,1981
Monday,theTWENTY-NINTH OFMARCH ,1982
Monday,theSECOND OFNOVEMBER ,1981
Monday,theFOURTEENTH OFDECEMBER ,1981
Monday,theTHIRTEENTH OFJUNE ,1983
Monday,theTWENTY-FOURTH OFMAY ,1982
Monday,theFIFTEENTH OFMARCH ,1982
Monday,theEIGHTEENTH OFJULY ,1983
Monday,theSEVENTH OFJUNE ,1982
Monday,theSEVENTH OFJUNE ,1982
Monday,theTWENTY-SIXTH OFJULY ,1982

14 rows selected.
================================================================================
===============
ANSWER NO-12
CASE:
SQL>
2
3
4
5
6
7

SELECT EMPNO,ENAME,SAL,
CASE
WHEN SAL>3000 THEN 'GOOD SAL'
WHEN SAL=3000 THEN 'AVERAGE SAL'
WHEN SAL<3000 THEN 'POOR SAL'
END "REMARK"
FROM EMP;

EMPNO
---------7369
7499
7521
7566
7654
7698
7782
7788

ENAME
SAL REMARK
---------- ---------- ----------SMITH
800 POOR SAL
ALLEN
1600 POOR SAL
WARD
1250 POOR SAL
JONES
2975 POOR SAL
MARTIN
1250 POOR SAL
BLAKE
2850 POOR SAL
CLARK
2450 POOR SAL
SCOTT
3000 AVERAGE SAL

7839
7844
7876
7900
7902
7934

KING
TURNER
ADAMS
JAMES
FORD
MILLER

5000
1500
1100
950
3000
1300

GOOD SAL
POOR SAL
POOR SAL
POOR SAL
AVERAGE SAL
POOR SAL

14 rows selected.
DECODE:
SQL> SELECT EMPNO,ENAME,DECODE(SIGN(SAL-3000),1,'GOOD SAL',-1,'POOR SAL','AVERAG
E SAL')
2 FROM EMP;
EMPNO
---------7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934

ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

DECODE(SIGN
----------POOR SAL
POOR SAL
POOR SAL
POOR SAL
POOR SAL
POOR SAL
POOR SAL
AVERAGE SAL
GOOD SAL
POOR SAL
POOR SAL
POOR SAL
AVERAGE SAL
POOR SAL

14 rows selected.
================================================================================
================
ANSWER NO-13
SQL> SELECT TO_CHAR(TO_DATE('&DATE','DD/MM/YYYY'),'DAY') "TODAYS DAY"FROM DUAL;
Enter value for date: 13-09-2013
old 1: SELECT TO_CHAR(TO_DATE('&DATE','DD/MM/YYYY'),'DAY') "TODAYS DAY"FROM DU
AL
new 1: SELECT TO_CHAR(TO_DATE('13-09-2013','DD/MM/YYYY'),'DAY') "TODAYS DAY"FR
OM DUAL
TODAYS DAY
---------FRIDAY
================================================================================
================
ANSWER NO-14
SQL>
2
3

SELECT FLOOR(MONTHS_BETWEEN(SYSDATE,HIREDATE)/12) "YEARS",


FLOOR(MOD(MONTHS_BETWEEN(SYSDATE,HIREDATE),12)) "MONTHS"
FROM EMP;

YEARS
MONTHS
---------- ---------32
8
32
6
32
6
32
5
31
11
32
4
32
3
30
9
31
9
32
0
30
8
31
9
31
9
31
7
14 rows selected.
================================================================================
================
ANSWER NO-15
SQL> SELECT EMPNO,HIREDATE,
2 CASE
3 WHEN NEXT_DAY(ROUND(HIREDATE,'MONTH'),'FRIDAY') + 28 <= LAST_DAY(ROUND(HIR
EDATE,'MONTH'))
4
THEN NEXT_DAY(ROUND(HIREDATE,'MONTH'),'FRIDAY') + 28
5 ELSE
6 NEXT_DAY(ROUND(HIREDATE,'MONTH'),'FRIDAY') + 21
7 END "PAYDATE"
8 FROM EMP;
EMPNO
---------7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934

HIREDATE
--------17-DEC-80
20-FEB-81
22-FEB-81
02-APR-81
28-SEP-81
01-MAY-81
09-JUN-81
09-DEC-82
17-NOV-81
08-SEP-81
12-JAN-83
03-DEC-81
03-DEC-81
23-JAN-82

PAYDATE
--------30-JAN-81
27-MAR-81
27-MAR-81
24-APR-81
30-OCT-81
29-MAY-81
26-JUN-81
31-DEC-82
25-DEC-81
25-SEP-81
28-JAN-83
25-DEC-81
25-DEC-81
26-FEB-82

14 rows selected.
================================================================================
================
ANSWER NO-16
SQL> SELECT ENAME,HIREDATE,TO_CHAR(HIREDATE,'Day') HIRED_DAY FROM EMP
2 WHERE TO_CHAR(HIREDATE,'Day') LIKE'M%'

SQL> /
ENAME
HIREDATE
HIRED_DAY
---------- ----------------- --------MARTIN
28-09-81 12:00:AM Monday
================================================================================
================
ANSWER NO-17
1* SELECT ROUND(MONTHS_BETWEEN(SYSDATE,('&DOB'))*30) DOB FROM DUAL
SQL> /
Enter value for dob: 22-AUG-1991
old 1: SELECT ROUND(MONTHS_BETWEEN(SYSDATE,('&DOB'))*30) DOB FROM DUAL
new 1: SELECT ROUND(MONTHS_BETWEEN(SYSDATE,('22-AUG-1991'))*30) DOB FROM DUAL
DOB
---------7942
================================================================================
=================
ANSWER NO-18
1 SELECT ENAME ||'Earns'||SAL||'Monthly But Wants'||SAL*3 "DREAM SALARIES" FRO
M EMP
SQL> /
DREAM SALARIES
--------------------------------------------------------------------------------------------------SMITHEarns800Monthly But Wants2400
ALLENEarns1600Monthly But Wants4800
WARDEarns1250Monthly But Wants3750
JONESEarns2975Monthly But Wants8925
MARTINEarns1250Monthly But Wants3750
BLAKEEarns2850Monthly But Wants8550
CLARKEarns2450Monthly But Wants7350
SCOTTEarns3000Monthly But Wants9000
KINGEarns5000Monthly But Wants15000
TURNEREarns1500Monthly But Wants4500
ADAMSEarns1100Monthly But Wants3300
JAMESEarns950Monthly But Wants2850
FORDEarns3000Monthly But Wants9000
MILLEREarns1300Monthly But Wants3900
14 rows selected.
================================================================================
===================
ANSWER NO-19
CASE:
SQL> SELECT ENAME,SAL,
2 CASE
3 WHEN COMM IS NULL THEN 'NO COMMISSION'

4 WHEN COMM IS NOT NULL THEN TO_CHAR(COMM)


5 END "COMMISSION"
6 FROM EMP;
ENAME
SAL COMMISSION
---------- ---------- ---------------------------------------SMITH
800 NO COMMISSION
ALLEN
1600 300
WARD
1250 500
JONES
2975 NO COMMISSION
MARTIN
1250 1400
BLAKE
2850 NO COMMISSION
CLARK
2450 NO COMMISSION
SCOTT
3000 NO COMMISSION
KING
5000 NO COMMISSION
TURNER
1500 0
ADAMS
1100 NO COMMISSION
JAMES
950 NO COMMISSION
FORD
3000 NO COMMISSION
MILLER
1300 NO COMMISSION
14 rows selected.
DECODE:
SQL> SELECT ENAME,JOB,SAL,DECODE(COMM,'','NO COMMISSION',COMM) FROM EMP;
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

JOB
SAL DECODE(COMM,'','NOCOMMISSION',COMM)
--------- ---------- ---------------------------------------CLERK
800 NO COMMISSION
SALESMAN
1600 300
SALESMAN
1250 500
MANAGER
2975 NO COMMISSION
SALESMAN
1250 1400
MANAGER
2850 NO COMMISSION
MANAGER
2450 NO COMMISSION
ANALYST
3000 NO COMMISSION
PRESIDENT
5000 NO COMMISSION
SALESMAN
1500 0
CLERK
1100 NO COMMISSION
CLERK
950 NO COMMISSION
ANALYST
3000 NO COMMISSION
CLERK
1300 NO COMMISSION

14 rows selected.
================================================================================
=====================
ANSWER NO-20
SQL> SELECT DEPTNO , SUM(SAL) SUM,AVG(SAL) AVG ,MIN(SAL) "MIN SAL",MAX(SAL) "MA
X SAL" FROM EMP
2 GROUP BY DEPTNO
3 HAVING DEPTNO != 10;
DEPTNO

SUM

AVG

MIN SAL

MAX SAL

---------- ---------- ---------- ---------- ---------20


10875
2175
800
3000
30
9400 1566.66667
950
2850
================================================================================
==================
ANSWER NO-21
SQL> SELECT DEPTNO,COUNT(DEPTNO) "NO OF EMPLOYEES" FROM EMP
2 GROUP BY DEPTNO
3 HAVING COUNT(DEPTNO) >4;
DEPTNO NO OF EMPLOYEES
---------- --------------20
5
30
6
================================================================================
==================
ANSWER NO-22
SQL>
2
3
4
5
JOB

SELECT JOB,AVG(SAL) "AVERAGE SALARY


" FROM EMP
GROUP BY JOB
HAVING AVG(SAL)>2000
ORDER BY AVG(SAL);
AVERAGE SALARY

--------- ---------------MANAGER
2758.33333
ANALYST
3000
PRESIDENT
5000
================================================================================
==================
ANSWER NO-23
SQL> SELECT MGR,COUNT(ENAME) "NO OF EMPLOYEES" FROM EMP
2
GROUP BY MGR
3 HAVING MGR IS NOT NULL;
MGR NO OF EMPLOYEES
---------- --------------7566
2
7698
5
7782
1
7788
1
7839
3
7902
1
6 rows selected.
================================================================================
====================

ANSWER NO-24
SQL>
2
3
4

SELECT MGR,MIN(SAL) "LOWEST SALARY" FROM EMP


GROUP BY MGR
HAVING MGR IS NOT NULL AND MIN(SAL)>800
ORDER BY MIN(SAL) DESC;

MGR LOWEST SALARY


---------- ------------7566
3000
7839
2450
7782
1300
7788
1100
7698
950
================================================================================
===================

You might also like