SQL Material Quiries
SQL Material Quiries
7. DISPLAY THE NAMES OF ALL EMPLOYEES WHO ARE WORKING IN DEPARTMENT NO-10:
SELECT E.ENAME FROM EMP E, DEPT D WHERE E.DEPTNO=10
AND E.DEPTNO=D.DEPTNO
11. DISPLAY THE NAMES OF EMPLOYEES WHO ARE WORKING AS CLERK, SALESMAN,
ANYLIST, DRAWING AND SALARY MORE THAN 300:
SELECT ENAME FROM EMP WHERE JOB IN
('CLERK','SALESMAN','ANALYST','DRAWING') AND SAL>1000;
12. DISPLAY THE NAMES OF EMPLOYEE WHO ARE WORKING IN THE COMPANY FROM
FAST FIVE YEARS:
SELECT ENAME, HIREDATE FROM EMP WHERE ((SYSDATE-HIREDATE)/365)>5
19. DISPLAY EMPLOYEE NAMES FOR WHOSE NAME ENDS WITH ALPHABET S:
SELECT ENAME FROM EMP WHERE ENAME LIKE '%S'
20. DISPLAY THE NAMES FOR EMPLOYEES WHO’S NAMES HAVE SECOND ALPHABET A
IN THEIR NAMES:
SELECT ENAME FROM EMP WHERE ENAME LIKE '_A%'
21. DISPLAY THE NAMES OF EMPLOYEES WHOSE NAMES IS EXACTLY FIVE CHARACTER
IN LENGTH:
SELECT ENAME FROM EMP WHERE LENGTH (ENAME)=5
22. DISPLAY THE NAMES OF EMPLOYEES WHO ARE NOT WORKING AS MANAGER:
SELECT ENAME, JOB FROM EMP WHERE JOB NOT IN ('MANAGER')
------OR-----
SELECT ENAME, JOB FROM EMP WHERE EMPNO NOT IN (MGR)
23. DISPLAY THE NAME OF EMPLOYEES WHO ARE NOT WORKING AS SALESMAN OR
CLERK OR ANALYST:
SELECT ENAME, JOB FROM EMP WHERE JOB
NOT IN ('ANALYST','CLERK','SALESMAN')
24. DISPLAY ALL ROWS FROM EMP TABLE. THE SYSTEM SHOULD WAIT AFTER EVERY
SCREEN FULL OF INFORMATION:
SELECT * FROM EMP (REMAING FRONT_END USER JOB)
31. DISPLAY THE MAXIMUM SALARY BEING PAID IN THE DEPARTMENT NO.20:
SELECT MAX (SAL) FROM EMP WHERE DEPTNO=20
35. DISPLAY THE NAMES OF THE EMPLOYEES IN ORDER OF SALARY i.e THE NAME OF
THE EMPLOYEE EARNING LOWEST SALARY SHOULD APPEAR FIRST:
SELECT ENAME, SAL FROM EMP ORDER BY SAL
37. DISPLAY THE DETAILS FROM EMP TABLE IN ORDER OF EMPLOYEE NAME:
SELECT ENAME, SAL FROM EMP ORDER BY ENAME
38. DISPLAY THE EMPNO, ENAME, DEPTNO AND SAL. SORT THE OUTPUT FIRST BASED
ON NAME AND WITHIN NAME BY DEPTNO AND WITHIN DEPTNO BY SALARY:
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP ORDER BY ENAME, DEPTNO, SAL
39. DISPLAY THE NAME OF THE EMPLOYEE ALONG WITH ANNUAL SALARY. THE NAME
OF THE EMPLOYEE EARNING HIGHEST ANNUAL SALARY SHOULD APPEAR FIRST:
SELECT ENAME, SAL*12 ANUAL_SAL FROM EMP ORDER BY (SAL*12) DESC
40. DISPLAY NAME, SALARY, HRA, PF, DA, TOTAL SALARY FOR EACH EMPLOYEE. THE
OUTPUT SHOULD BE IN THE OREDR OF TOTAL SALARY, (HRA 15%, DA 10%, PF 5%)
OF SAL AND TOTAL SALARY WILL BE (SAL*HRA*DA)-PF:
SELECT ENAME, SAL, SAL*15/100 HRA, SAL*10/100 DA, SAL*5/100 PF FROM EMP
ORDER BY (SAL*HRA*DA)-PF
41. DISPLAY THE DEPTNO, TOTAL NUMBER OF EMPLOYEES WITH EACH JOB GROUP:
SELECT DEPTNO, COUNT(*) FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO
43. DISPLAY DEPARTMENT NUMBERS AND TOTAL SALARY FOR EACH DEPARTMENT:
SELECT DEPTNO, SUM(SAL) FROM EMP GROUP BY DEPTNO
44. DISPLAY DEPARTMENT NUMBERS AND MAXIMUM SLARY FOR EACH DEPARTMENT:
SELECT DEPTNO, MAX(SAL) FROM EMP GROUP BY DEPTNO
45. DISPLAY THE VARIOUS JOBS AND TOTAL SALARY FOR EACH JOB:
SELECT JOB, SUM(SAL) FROM EMP GROUP BY JOB
46. DISPLAY EACH JOB ALONG WITH MINIMUM SALARY BEING PAID IN EACH JOB
GROUP:
SELECT JOB, MAX(SAL) FROM EMP GROUP BY JOB
47. DISPLAY THE DEPARTMENT NUMBERS WITH MORE THAN THREE EMPLOYEES IN
EACH DEPARTMENT:
SELECT DEPTNO, COUNT(*) FROM EMP WHEN HAVING COUNT(*)>3 GROUP BY
DEPTNO
48. DISPLAY THE VARIOUS JOBS ALONG WITH TOTAL SALARY FOR EACH OF THE JOBS
WHERE TOTAL SALARY IS GREATER THAN 4000:
SELECT JOB, SUM(SAL) FROM EMP WHEN HAVING SUM(SAL)>4000 GROUP BY JOB
49. DISPLAY THE VARIOUS JOBS ALONG WITH TOTAL NUMBER OF EMPLOYEES IN EACH JOB
THE OUTPUT SHOULD CONTAIN ONLY THOSE JOBS WITH MORE THAN THREE EMPLOYEE :
SELECT JOB, COUNT(*) FROM EMP WHEN HAVING COUNT(*)>3 GROUP BY JOB
50. DISPLAY THE NAME OF THE EMPLOYEE WHO EARNS HIGHEST SALARY:
SELECT ENAME FROM EMP WHERE SAL = (SELECT MAX (SAL) FROM EMP)
51. DISPLAY THE EMPLOYEE NUMBER AND NAME OF THE WORKING AS CLERK AND
EARNING HIGHEST SALARY AMONG CLERK:
SELECT EMPNO, ENAME, SAL FROM EMP WHERE JOB ='CLERK' AND SAL IN (SELECT
MAX (SAL) FROM EMP GROUP BY JOB)
52. DISPLAY THE NAMES OF THE SALESMAN WHO EARNS A SALARY MORE THAN THE
HIGHEST SALARY OF ANY CLERK:
SELECT ENAME FROM EMP WHERE JOB='SALESMAN' AND SAL>
(SELECT MAX (SAL) FROM EMP WHERE JOB='CLERK')
53. DISPLAY THE NAMES OF THE CLERKS WHO EARN A SALARY MORE THAN THAT OF
JAMES OF THAT OF SALARY LESSER THAN THAT OF SCOTT:
SELECT ENAME FROM EMP WHERE JOB='CLERK' AND SAL >
(SELECT SAL FROM EMP WHERE ENAME='JAMES') AND SAL <
(SELECT SAL FROM EMP WHERE ENAME='SCOTT')
55. FIND OUT THE LENGTH OF YOUR NAME BY USING APPROPIATE FUNCTION:
SELECT LENGTH ('RAMANA MURTHY') FROM DUAL
56. DISPLAY THE NAMES OF THE EMPLOYEES WHO EARNS HIGHEST SALARY IN THEIR
RESPECTIVE DEPARTMENTS:
SELECT ENAME FROM EMP WHERE SAL IN (SELECT MAX (SAL)FROM EMP
GROUP BY DEPTNO)
57. DISPLAY THE NAMES OF EMPLOYEES WHO EARNS HIGHEST SALARY IN THEIR
RESPECTIVE JOB GROUPS:
SELECT ENAME FROM EMP WHERE SAL IN(SELECT MAX(SAL) FROM EMP GROUP
BY JOB)
58. DISPLAY THE EMPLOYEES NAME WHO ARE WORKING IN THE ACCOUNTING
DEPARTMENT:
SELECT E.ENAME FROM EMP E, DEPT D WHERE D.DNAME= 'ACCOUNTING' AND
E.DEPTNO=D.DEPTNO
59. DISPLAY THE EMPLOYEES NAMES WHO ARE WORKING IN THE CHICAGO:
SELECT E.ENAME FROM EMP E, DEPT D WHERE D.LOC='CHICAGO' AND
E.DEPTNO=D.DEPTNO
60. DISPLAY THE JOB GROUPS HAVING TOTAL SALARY GREATER THAN THE MAXIMUM
SALARY FOR MANAGERS:
SELECT JOB, SUM (SAL) FROM EMP WHEN HAVING SUM(SAL) >
(SELECT MAX (SAL)FROM EMP WHERE JOB= 'MANAGER')GROUP BY JOB
61. DISPLAY THE NAMES OF EMPLOYEES FROM DEPARTMENT NUMBER 10 AND SALARY
GREATER THAN THAT OF ANY EMPLOYEE WORKING IN OTHER DEPARTMENTS:
SELECT ENAME FROM EMP WHERE SAL> (SELECT MAX(SAL) FROM EMP WHERE
DEPTNO IN (20,30))
62. DISPLAY THE NAMES OF THE EMPLOYEES FROM DEPARTMENT 10 WITH SALARY
GREATER THAN THAT OF ALL EMPLOYEES WORKING IN OTHER DEPARTMENTS:
SELECT ENAME FROM EMP WHERE SAL> (SELECT MAX(SAL) FROM EMP
WHERE DEPTNO IN (20, 30))
69. FIND OUT FIRST OCCURANCE OF CHARACTER 'A' FROM THE FOLLOWING THE
STRING 'COMPUTER MAINTANANCE CORPORATION':
SELECT INSTR ('COMPUTER MAINTENANCE CORPORATION', 'A',1) FROM DUAL
71. DISPLAY THE INFORMATION FROM EMP TABLE WHEREVER JOB 'MANAGER' IS
FOUND IT SHOULD BE DISPLAYED AS BOSS (REPLACE FUNCTION):
SELECT ENAME, JOB, REPLACE (JOB,'MANAGER', 'BOSS') FROM EMP WHERE
JOB='MANAGER'
72. DISPLAY EMPNO, ENAME, DEPTNO FROM TABLE INSTEAD OF DISPLAY DEPATMENT
NUMBERS DISPLAY THE REALATED DEPARTAMENT NAME (DECODE FUNCTION):
SELECT E.ENAME, E.DEPTNO, DECODE (D.DEPTNO, E.DEPTNO, D.DNAME)
FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO ORDER BY E.DEPTNO;
75. DISPLAY CURRENT DATE 15TH AUGEST FRIDAY NINETEEN FORTY SEVEN:
SELECT TO_CHAR(SYSDATE,'DD')||'TH '||TO_CHAR (SYSDATE, 'MONTH')||'
'||TO_CHAR(SYSDATE,'DAY')||' ' ||TO_CHAR(SYSDATE,'YYYYSP') QUARIE_75
FROM DUAL
76. DISPLAY THE FOLLOWING OUTPUT FOR EACH ROW FROM EMP TABLE AS 'SCOTT
HAS JOINED THE COMPANY ON WEDNESDAY 13TH AUGEST NINTEEN NINETY':
SELECT ENAME ||' HAS JOINED'||TO_CHAR(HIREDATE, 'DD')||'TH '||TO_CHAR
(HIREDATE, 'MONTH')||' '||TO_CHAR (HIREDATE,'DAY')||' '||TO_CHAR
(HIREDATE,'YYYYSP') JOIN_DATE_QUARIE_76 FROM EMP
81. DISPLAY THE DETAILS OF THE THOSE WHO DO NOT HAVE ANY PERSON WORKING
UNDER THEM:
SELECT DISTINCT ENAME, JOB, MGR FROM EMP WHERE EMPNO NOT IN MGR
82. DISPLAY THE JOBS WHICH ARE UNIQUE TO THE DEPARTMENT NUMBER 10:
SELECT DISTINCT JOB FROM EMP WHERE DEPTNO=20
84. DISPLAY THE DETAILS OF EMPLOYEES WHO ARE IN DEPT TABLE AND GRADE IS 3:
SELECT E.ENAME, D.DNAME, G.GRADE FROM EMP E, GRADE G, DEPT D WHERE
G.GRADE=3 AND E.SAL BETWEEN G.LOSAL AND G.HISAL
AND E.DEPTNO=D.DEPTNO
85. DISPLAY THOSE WHO ARE NOT MANAGER AND WHO ARE MANAGER ANY ONE:
SELECT ENAME, JOB, EMPNO, MGR FROM EMP WHERE JOB NOT IN ('MANAGER')
AND EMPNO NOT IN MGR
86. DISPLAY THOSE EMPLOYEES WHOSE NAME CONSTAIN NOT LESS THAN 4
CHARACTERS:
SELECT ENAME FROM EMP WHERE LENGTH(ENAME)>3
87. DISPLAY THOSE DEPARTMENTS WHOSE NAME STARTS WITH 'S' WHILE LOCATION
NAME END WITH '0':
SELECT DNAME, LOC FROM DEPT WHERE DNAME LIKE '%S' AND LOC LIKE'%O'
89. DISPLAY THOSE EMPLOYEES WHOSE SALARY IS GREATER THAN 3000 AFTER GIVING
20% INCREMENT:
SELECT ENAME, SAL,(SAL+SAL*20/100) INCR_SAL FROM EMP
WHERE (SAL+SAL*20/100)>3000
92. DISPLAY EMPLOYEE NAME, DEPARTMENT NAME, SALARY AND COMM FOR WHOSE
SALARY IN BETWEEN 2000 AND 5000 WHILE LOCATION IN CHICAGO:
SELECT E.ENAME, D.DNAME, E.SAL, E.COMM FROM EMP E, DEPT D WHERE E.SAL
BETWEEN 2000 AND 5000 AND D.LOC IN ('CHICAGO') AND D.DEPTNO=E.DEPTNO
93. DISPLAY THOSE EMPLOYEE WHOSE SALARY IS GREATER THAN HIS MANAGER
SALARY:
SELECT W.ENAME FROM EMP W, EMP M WHERE W.MGR=M.EMPNO AND
W.SAL>M.SAL
94. DISPLAY THOSE EMPLOYEES WHO ARE WORKING IN THE SAME DEPARTMENT
WHERE HIS MANAGER IS WORKING:
SELECT W.ENAME WORKER, M.ENAME MANAGER, W.DEPTNO, M.DEPTNO FROM
EMP W, EMP M WHERE W.MGR=M.EMPNO AND W.DEPTNO=M.DEPTNO
95. DISPLAY THOSE EMPLOYEES WHO ARE NOT WORKING UNDER ANY MANAGER:
SELECT * FROM EMP WHERE MGR IS NULL
96. DISPLAY GRADE AND EMPLOYES NAME FOR THE DEPARTMENT NUMBER 10 AND 30
BUT GRADE IS NOT 4, WHILE JOINED THE COMPANY BEFORE 31-DEC-82:
SELECT E.ENAME, D.DEPTNO, G.GRADE, E.HIREDATE FROM EMP E, DEPT D,
GRADE G WHERE E.DEPTNO=D.DEPTNO AND E.SAL BETWEEN G.LOSAL AND
G.HISAL AND E.DEPTNO IN (10,30) AND G.GRADE NOT IN (4)
AND E.HIREDATE<'31/DEC/1982' ORDER BY D.DEPTNO
97. UPDATE THE SALARY OF EACH EMPLOYEE BY 10% INCREATENTS THAT ARE NOT
ELIGIBLE FOR COMMISION:
UPDATE EMP2 SET COMM=SAL*10/100 WHERE NVL(COMM,0)=0
98. DELETE EMPLOYEES WHO JOINED THE COMPANY BEFORE 31-DEC-82 WHILE
THERE DEPARTMENT LOCATION IS 'NEW YORK' OR 'CHICAGO':
DELETE FROM EMP2 WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC
IN ('NEW YORK','CHICAGO')) AND HIREDATE<'31/DEC/1982'
99. DISPLAY EMPLOYEE NAME, JOB, DEPARTMENT NAME, AND LOCATION FOR ALL
WHO ARE WORKING AS MANAGERS:
SELECT E.ENAME, E.JOB, D.DNAME, D.LOC FROM EMP E, DEPT D
WHERE E.JOB='MANAGER'
100. DISPLAY THE NAME AND SALARY OF FORD IF HIS SALARY IS EQUAL TO HIGH
SALARY OF HIS GRADE:
SELECT E.ENAME, E.SAL, G.HISAL FROM EMP E, GRADE G WHERE
E.ENAME='FORD' AND E.SAL=G.HISAL
101. DISPLAY THE NAME OF THOSE EMPLOYEES WHO ARE GETTING HIGHEST SALARY:
SELECT * FROM EMP WHERE SAL=(SELECT MAX(SAL) FROM EMP)
GNANA IT SOLUTIONS, VIZAG 60
102. DISPLAY THOSE EMPLOYEES WHOSE MANAGER NAME IS JONES AND ALSO
DISPLAY THE MANAGER NAME:
SELECT W.ENAME EMPLOYEE, M.ENAME MANAGER FROM EMP W, EMP M
WHERE W.MGR=(SELECT EMPNO FROM EMP WHERE ENAME ='JONES') AND
M.EMPNO=(SELECT EMPNO FROM EMP WHERE ENAME='JONES')-100
103. DISPLAY THE EMPLOYEE NAME, JOB, DEPARTMENT NAME, LOCATION FOR ALL
WHO ARE WORKING AS MANAGER:
SELECT W.ENAME, W.JOB, D.DNAME, M.ENAME MANAGER ,G.GRADE FROM EMP
W,EMP M, DEPT D, GRADE G WHERE W.MGR=M.EMPNO AND W.SAL BETWEEN
G.LOSAL AND G.HISAL AND M.DEPTNO=D.DEPTNO ORDER BY W.DEPTNO
104. DISPLAY EMPLOYEE NAME, JOB, HIS MANAGER AND DISPLAY ALSO EMPLOYEES
WHO ARE WITHOUT MANAGER:
SELECT W.ENAME, W.JOB, M.ENAME MANAGER FROM EMP W,EMP M
WHERE W.MGR=M.EMPNO
105. LIST OUT ALL THE EMPLOYEES NAME, JOB, SALARY GARDE, DEPARTMENT NAME
FOR EVERY ONE IN THE COMPANY EXCEPT 'CLERK' SORT ON SALARY DISPLAY THE
HIGHEST SALARY:
SELECT E.ENAME, E.JOB, D.DNAME, G.GRADE FROM EMP E, DEPT D, GRADE G
WHERE E.SAL BETWEEN G.LOSAL AND G.HISAL AND E.DEPTNO=D.DEPTNO AND
E.ENAME NOT IN ('CLERK')ORDER BY E.SAL DESC
108. DISPLAY DEPARTMENT NAME WHERE AT LEAST 3 ARE WORKING AND DISPLAY
ONLY DEPARTMENT NAME:
SELECT DNAME FROM (SELECT DEPTNO FROM EMP GROUP BY DEPTNO
HAVING COUNT (*)> =3)E,DEPT D WHERE E.DEPTNO = D.DEPTNO
109. DISPLAY NAMES OF THOSE MANAGERS WHOSE SALARY IS MORE THAN THAT
AVERAGE SALARY OF COMAPNY:
SELECT ENAME FROM EMP WHERE JOB ='MANAGER' AND SAL>(SELECT AVG(SAL)
FROM EMP)
111. DISPLAY EMPLOYEE NAME, SALARY, COMMISION, NET PAY AND WHOSE NET PAY
IS GREATER THAN OR EQUAL TO THEIR SALARY OF THE COMPANY:
SELECT E.ENAME, E.SAL, E.COMM, A.NET_PAY FROM EMP E,
(SELECT EMPNO, SAL+NVL (COMM, 0)-SAL*10/100 NET_PAY FROM EMP)A
WHERE E.EMPNO=A.EMPNO AND A.NET_PAY >=SAL;
112. DISPLAY THOSE EMPLOYEES WHOSE SALARY IS LESS THAN HIS MANAGER
SALARY BUT MORE THAN SALARY OF ANY OTHER MANAGER:
SELECT DISTINCT T.ENAME, T.SAL FROM (SELECT W.ENAME, W.SAL FROM EMP W,
EMP M WHERE W.MGR=M.EMPNO AND W.SAL<M.SAL ) T, (SELECT M.SAL FROM
EMP W, EMP M WHERE W.MGR=M.EMPNO) R WHERE T.SAL>R.SAL;
114. FIND OUT THE NUMBER OF EMPLOYEES WHOSE SALARY IS GREATER THAN THERE
MANAGER SALARY:
SELECT COUNT (*) FROM (SELECT W.ENAME FROM EMP W, EMP M WHERE
W.MGR=M.EMPNO AND W.SAL > M.SAL)
115. DISPLAY THOSE MANAGER WHO ARE NOT WORKING UNDER PRESEDENT BUT
WORKING UNDER ANY OTHER MAANAAGER:
SELECT * FROM EMP WHERE MGR IS NOT NULL AND MGR NOT IN(SELECT EMPNO
FROM EMP WHERE JOB='PRESIDENT')
---------OR----------
SELECT * FROM EMP W, EMP M WHERE W.MGR=M.EMPNO
AND W.MGR IS NOT NULL AND M.JOB NOT IN ('PRESIDENT')
117. DELETE THOSE RECORDS FROM EMP TABLE WHOSE DEPARTMENT NUMBER NOT
AVAILANBLE IN DEPARTMENT TABLE:
DELETE FROM EMP2 WHERE DEPTNO NOT IN
(SELECT D.DEPTNO FROM EMP2 E, DEPT D WHERE E.DEPTNO(+)=D.DEPTNO)
118. DISPLAY THOSE EARNERS WHOSE SALARY IS OUT OF THE GRADE AVAILABLE IN
SALARY GRADE TABLE:
SELECT *FROM EMP E,GRADE G WHERE GRADE=
(SELECT MAX(GRADE)FROM GRADE) AND E.SAL BETWEEN G.LOSAL AND G.HISAL
119. DISPLAY EMPLOYEE NAME, SALARY, COMMISION AND WHO’S NET PAY IS
GREATER THAN ANY OTHER IN THE COMPANY:
SELECT DISTINCT E.EMPNO, E.ENAME, E.SAL, E.COMM, A.NET_PAY FROM EMP E,
(SELECT EMPNO, SAL+NVL (COMM,0)-SAL*10/100 NET_PAY FROM EMP)A
WHERE A.NET_PAY > (SAL+NVL (COMM, 0)-SAL*10/100);
123. DISPLAY THOSE EMPLOYEES WHO JOINED IN THE COMPANY IN THE MONTH OF
DECEMBER:
SELECT * FROM EMP WHERE TO_CHAR (HIREDATE,'MM')=12
127. DISPLAY THOSE EMPLOYEE WHOSE 10% SALARY IS EQUAL TO THE YEAR OF
JOINING:
SELECT * FROM EMP WHERE(SAL*10/100)= (TO_CHAR (HIREDATE,'YY'))
130. DISPLAY THOSE EMPLOYEES WHO JOINED THE COMPANY BEFORE 15TH OF THE MONTH:
SELECT * FROM EMP WHERE TO_CHAR (HIREDATE,'DD')<15
131. DELETE THOSE EMPLOYEES WHO JOINED THE COMPANY 21 YAERS BACK FROM TODAY:
SELECT * FROM EMP WHERE (SYSDATE-HIREDATE)/365>21
135. DISPLAY THE NAME OF THE DEPARTMENT THOSE EMPLOYEES WHO JOINED THE
COMPANY ON THE SAME DATE:
SELECT * FROM EMP WHERE HIREDATE IN (SELECT HIREDATE FROM EMP
GROUP BY HIREDATE HAVING COUNT (*) >1)
----------- (OR) ------------
SELECT * FROM EMP E, (SELECT HIREDATE FROM EMP GROUP BY HIREDATE
HAVING COUNT (*)>1) AWHEREE.HIREDATE=A.HIREDATE
136. DISPLAY THE MANAGER NAME WHO HAS MAXIMUM NUMBER OF EMPLOYEES
WORKING UNDER HIM:
SELECT E.ENAME, C.NO_EMP FROM EMP E, (SELECT * FROM (SELECT
MGR, COUNT (*) NO_EMP FROM EMP GROUP BY MGR ORDER BY COUNT (*)DESC)
WHERE ROWNUM=1)C WHERE E.EMPNO=C.MGR
137. LIST OUT EMPLOYEES NAME AND SALARY INCREASED BY 15% AND EXPREDDED
AS WHOLE NUMBER DOLLAR:
SELECT ENAME, TRUNC((SAL+SAL*15/100)/72,2) SAL_DOLLORS FROM EMP
138. PRODUCE THE OUTPUT OF THE EMP TABLE "EMPLOYEE_AND_JOB" FOR NAME AND
JOB:
SELECT ENAME||'_AND_'||JOB FROM EMP
140. PRINT A LIST OF EMPLOYEES DISPLAYING 'LESS SALARY' IF LESS THAN 1500 IF
EXACTLY 1500 DISPLAY AS 'EXACT SALARY' AND IF GREATER THAN 1500 THEN
DISPLAY 'MORE SALARY':
SELECT ENAME, SAL, CASE WHEN SAL<1500 THEN 'LESS_SAL'WHEN SAL=1500
THEN 'EXACT_SAL' ELSE 'MORE_SAL' END SAL_INFO FROM EMP
141. WRITE A QUERY TO CALUCULATE THE LENGTH OF EMPLOYEE NAME HAS BEEN
WITH THE QUERY:
SELECT ENAME, LENGTH (ENAME) FROM EMP
142. DISPLAY THOSE MANAGERS WHO ARE GETTING LESS THAN HIS EMPLOYEES
SALARY:
SELECT * FROM EMP W, EMP M WHERE W.MGR=M.EMPNO AND W.SAL>M.SAL
143. DISPLAY THOSE WHO WORKING AS MANAGER USING CO-REALTED SUB QUERY:
SELECT * FROM EMP WHERE EMPNO IN (SELECT MGR FROM EMP)
146. USE THE VARIABLE IN A STATEMENT WHICH FINDS ALL EMPLOYEES WHO CAN
EARN 3000 A YEAR OR MORE:
SELECT ENAME, (SAL+NVL(COMM,0))*12 ANNUAL_SAL FROM EMP WHERE
((SAL+NVL(COMM,0))*12)>=30000
147. FIND OUT HOW MANY MANAGERS ARE THERE WITH OUT LISTENING THEM:
SELECT COUNT (*) FROM EMP WHERE EMPNO IN (SELECT MGR FROM EMP)
148. DISPLAY THOSE EMPLOYEES WHOSE MANAGER NAME IS JONES ALSO WITH HIS
MANAGER NAME:
SELECT W.ENAME WORKER, M.ENAME MANAGER FROM EMP W, EMP M WHERE
W.MGR IN (SELECT EMPNO FROM EMP WHERE ENAME= 'JONES')
AND W.MGR=M.EMPNO
UNION
SELECT W.ENAME WORKER, M.ENAME MANAGER FROM EMP W, EMP M
WHERE W.EMPNO IN (SELECT EMPNO FROM EMP WHERE ENAME='JONES')
AND W.MGR=M.EMPNO
--------- (OR) ---------
SELECT W.ENAME WORKER, M.ENAME MANAGER FROM EMP W, EMP M WHERE
W.MGR IN ((SELECT EMPNO FROM EMP WHERE ENAME='JONES'), (SELECT MGR
FROM EMP WHERE ENAME='JONES'))AND W.MGR=M.EMPNO
149. FIND OUT THE AVERAGE SALARY AND AVERAGE TOTAL REMUNIRATION FOR
EACH JOB TYPE REMEMBER SALESMAN EARN COMMISSION:
SELECT JOB, TRUNC(AVG(SAL+NVL(COMM,0))) AVG_SAL,
TRUNC(AVG((SAL+NVL(COMM,0))*12)) AVG_ANNUAL FROM EMP GROUP BY JOB
152. LIST OUT THE LOWEST PAID EMPLOYEES WORKING FOR THE EACH MANAGER,
EXCLUDE ANY GROUPS WHERE MIN SALARY IS LESS THAN 1000 SORT THE OUTPUT
BY SALARY:
SELECT W.ENAME, W.SAL , M.ENAME, M.SAL FROM EMP W, EMP M
WHERE M.EMPNO=W.MGR AND W.SAL<M.SAL AND W.SAL>1000 AND
W.SAL IN(SELECT MIN(SAL) SAL FROM EMP GROUP BY MGR) ORDER BY W.SAL
155. LIST OUT ALL THE EMPLOYEES BY NAME AND NUMBER ALONG WITH THEIR
MANAGERD NAME AND NUMBER ALSO DISPLAY 'NO MANGER' WHO HAS NO
MANAGER:
SELECT DISTINCT W.EMPNO, W.ENAME, CASE WHEN W.MGR IS NOT NULL THEN
M.ENAME WHEN W.MGR IS NULL THEN 'NO MANAGER' END MANAGER
FROM EMP W, EMP M WHERE W.MGR IS NULL OR W.MGR=M.EMPNO
156. FIND OUT THE EMPLOYEE WHO EARNED THE MIN SAL FOR THEIR IN ASCENDING
ORDER:
SELECT ENAME, JOB, SAL FROM EMP WHERE SAL IN(SELECT MIN(SAL)
FROM EMP GROUP BY JOB) ORDER BY SAL
157. FIND OUT THE MOST RECENTLY HIRED EMPLOYEES IN EACH DEPARTMENT ORDER
BY HIREDATE:
SELECT D.DNAME, E.ENAME, E.HIREDATE FROM EMP E, DEPT D
WHERE E.HIREDATE IN (SELECT MAX (HIREDATE) FROM EMP
GROUP BY DEPTNO) AND E.DEPTNO=D.DEPTNO
-------- (OR)---------
SELECT DISTINCT ENAME, HIREDATE FROM EMP WHERE HIREDATE IN (SELECT
MAX(HIREDATE) FROM EMP GROUP BY DEPTNO) ORDER BY HIREDATE
158. DISPLAY NAME, SALARY AND DEPTNO FOR EACH EMPLOYEE WHO EARN SALARY
GREATER THAN THE AVERAGE OF THE THEIR DEPARTMENT ORDER BY DEPTNO:
SELECT E.DEPTNO ,E.ENAME, E.SAL, S.AVG_SAL FROM EMP E,(SELECT DEPTNO,
TRUNC(AVG(SAL))AVG_SAL FROM EMP GROUP BY DEPTNO)S
WHERE S.DEPTNO=E.DEPTNO AND E.SAL>S.AVG_SAL
158. FIND OUT ALL DEPARTMENTS WICH HAVE MORE THAN 3 EMPLOYEES:
SELECT DEPTNO, COUNT (*) FROM EMP HAVING COUNT(*)>3 GROUP BY DEPTNO
159. IN WHICH YEAR DID MOST PEOPLE JOIN THE COMPANY. DISPLAY THE YEAR AND
NUMBER OF EMPLOYEES:
SELECT YEAR_OF_JOIN, NO_OF_EMP FROM(SELECT HIREDATE YEAR_OF_JOIN,
COUNT (*) NO_OF_EMP FROM (SELECT ENAME, TO_CHAR(HIREDATE ,'YYYY')
HIREDATE FROM EMP) GROUP BY HIREDATE ORDER BY COUNT(*) DESC) WHERE
ROWNUM=1
161. WRITE A QUERY OF DISPLAY AGAINIST THE ROW OF THE MOST RECENT HIRED
EMPLOYEE. DISPLAY ENAME HIREDATE AND COLUMN MAX DATE SHOWING:
SELECT * FROM (SELECT ENAME, HIREDATE FROM EMP
ORDER BY HIREDATE DESC) WHERE ROWNUM=1
------- (OR) ---------
SELECT ENAME, HIREDATE FROM EMP ORDER BY HIREDATE DESC
162. DISPLAY EMPLOYEES WHO CAN EARN MORE THAN LOWEST SALARY IN
DEPARTMENT NO.30:
SELECT * FROM EMP WHERE SAL>
(SELECT MIN(SAL) FROM EMP WHERE DEPTNO=30)
-------- (OR) ----------
SELECT * FROM EMP WHERE SAL>(SELECT MIN(SAL) FROM EMP
HAVING DEPTNO=30 GROUP BY DEPTNO)
163. FIND EMPLOYEES WHO CAN EARN MORE THAN EVERY EMPLOYEE IN
DEPARTMENT NO.30:
SELECT * FROM EMP WHERE SAL>
ANY (SELECT SAL FROM EMP WHERE DEPTNO=30)
164. FIND OUT AVERAGE SALARY AVERAGE TOTAL REMAINDERS FOR EACH JOB TYPE:
SELECT J.JOB, J.M NO_OF_EMP, J.N AVG_SAL, TRUNC (J.N/J.M) REMINDER FROM
(SELECT JOB, COUNT (JOB)M, TRUNC (AVG(SAL)) N FROM EMP GROUP BY JOB)J
165. DISPLAY THE HALF OF THE ENAME IN UPPER AND HALF OF THE ENAME IN LOWER CASE:
SELECT UPPER (SUBSTR (ENAME, 1, LENGTH (ENAME)/2)) ||LOWER (SUBSTR
(ENAME, (LENGTH (ENAME)/2)+1)) FROM EMP
169. DISPLAY THOSE EMPLOYEES WHO’S JOING OF THE MONTH AND GRADE IS EQUAL:
SELECT E.ENAME, E.HIREDATE, G.GRADE FROM EMP E,GRADE G WHERE E.SAL
BETWEEN G.LOSAL AND G.HISAL AND TO_CHAR(HIREDATE,'MM')=GRADE
171. DISPLAY THOSE EMPLOYEE WHOS JOING DATE IS AVAILABLE IN DEPARTMENT NUMBER:
SELECT * FROM (SELECT ENAME,TO_CHAR(HIREDATE,'DD') J_DATE, DEPTNO
FROM EMP2) WHERE J_DATE IN DEPTNO
173. LIST OUT THE EMPLOYEE NAME, SALARY AND PF FROM EMP:
SELECT ENAME, SAL, SAL*12/100 PF FROM EMP
179. I WANT TO GIVE A VALIDATION SAYING THAT SALARY CONNOT BE GREATER THAN 10,000,
(NOTE GIVE NAME TO THIS COLUMN):
ALTER TABLE EMP ADD CONSTRAINT CK_SAL CHECK (SAL<10000)
180. FOR THE TIME BEING I HAVE DECIDED THAT I WILL NOT IMPOSE THIS VALIDATION. MY
BOSS HAS AGREED TO PAY MORE THAN 10000:
ALTER TABLE EMP DROP CONSTRAINT CK_SAL
182. MY BOSS HAS CHANGED HIS MIND. NOW HE DOES'T WANT TO PAY MORE THAN
10000 SALARY. SO REVOKE THAT SALARY CONSTRAINT:
ALTER TABLE EMP ADD CONSTRAINT CK_SAL CHECK(SAL<10000)
184. OH! THIS COLUMN SHOULD BE RELATED TO EMPNO. GIVE A COMMAND TO ADD
THIS CONSTRAINT ADD DEPTNO COLUMN TO EMP TABLE THIS DEPTNO NO
COLUMN SHOULD BE RELATED TO DEPT TABLE:
“ALTER TABLE DEPT ADD CONSTRAINT UK_DEPTNO UNIQUE (DEPTNO)”
“ALTER TABLE EMP ADD CONSTRAINT FK_DEPTNO FOREIGN KEY(DEPTNO)
REFERENCES DEPT(DEPTNO)”
186. CREATE TABLE CALLED AS NEW_EMP. THIS TABLE SHOULD CONTAIN EMPNO,
ENAME and DNAME ONLY:
CREATE TABLE NEW_EMP AS SELECT ENAME, EMPNO, DNAME FROM EMP E,
DEPT D WHERE E.DEPTNO=D.DEPTNO
187. DELETE THE ROWS OF EMPLOYEES WHO ARE WORKING IN THE COMPANY FOR
MORE THAN TWO YEARS:
DELETE FROM EMP WHERE HIREDATE IN (SELECT HIREDATE FROM EMP WHERE
(SYSDATE-HIREDATE)/365>39)
191. DISPLAY EMPLOYEE NAME AND DEPARTMENT NAME FOR EACH EAMPLOYEE:
SELECT ENAME, DNAME FROM EMP E, DEPT D WHERE E.DEPTNO=D.DEPTNO
193. DISPLAY DEPARTMENT NUMBER ALONG WITH TOTAL SALARY IN EACH DEPARTMENT:
SELECT DEPTNO, SUM(TOTAL_SAL) TOTAL_SAL FROM (SELECT DEPTNO, SAL+
NVL(COMM,0)TOTAL_SAL FROM EMP) GROUP BY DEPTNO
---------- (OR) ----------
SELECT DEPTNO, SUM (SAL+NVL(COMM,0)) TOTAL_SAL FROM EMP GROUP BY DEPTNO