Sri (SQL Notes)
Sri (SQL Notes)
DISPLAY THOSE EMPLOYEE WHOSE SALARY IS EVEN NO? SQL>SELECT EMPNO,ENAME,SAL FROM EMP WHERE MOD(SAL,2)=0; 3..DISPLAY THOSE EMPLOYEES WHOSE SALARY KEEPS DECIMAL DIGIT? SQL>SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL LIKE %.%; 4..DISPLAY THE 3% OF SAL UPTO TWO DECIMAL DIGIT? SQL>SELECT EMPNO,ENAME,SAL*.03,ROUND(SAL*.03,2) FROM EMP;
5..DISPLAY THE EMPLOYEE WHOSE NAME HAS CHAR 'A'? SQL>SELECT EMPNO,ENAME FROM EMP WHERE ENAME LIKE 'A%';
6..DISPLAY THE NAME IN UPPERCASE,JOB IN LOWER CASE? SQL> SELECT UPPER(ENAME),LOWER(JOB) FROM EMP;
7..DISPLAY THE NAME WITH 5 LEADING MINUS SIGN? SOL..SELECT ENAME,'-----'||ENAME FROM EMP;
8..DISPLAY THE EMPLOYEE NAME,JOB,ANNUAL SAL,AND TOTAL COMPENSATION FOR ALL EMPLOYEES; SQL>SELECT ENAME,JOB,(SAL+NVL(COMM,0))*12 FROM EMP
9..DISPLAY THE DIFFERENT TYPE OF JOB IN EMP? SQL>SELECT DISTINCT JOB FROM EMP;
10..DISPLAY THE EMPLOYEE WHOSE COMM IS MORE THAN 25% OF SALARY? SQL>SELECT ENAME,SAL FROM EMP WHERE COMM>(SAL*.25);
11..DISPLAY THE NAME,JOB,AND MGR FOR EMPLOYEE WHOSE SALESMAN OR MANAGER? SQL>SELECT EMPNO,ENAME,MGR,JOB FROM EMP WHERE JOB = 'SALESMAN' OR JOB='MANAGER'; 12..DISPLAY THE NAME,JOB,SAL WITH THE FOLLOWING CONDITION A) WHERE DEPTNO=20 OR DEPTNO=10 AND JOB=MANAGER; SQL>SELECT ENAME,JOB,SAL,DEPTNO FROM EMP WHERE(( DEPTNO=20 OR DEPTNO=10) AND JOB='MANAGER'); B)WHERE DEPTNO=20 OR(DEPTNO=10 AND JOB='MANAGER')? SQL>SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE DEPTNO=20 OR(DEPTNO=10 AND JOB='MANAGER') ORDER BY DEPTNO; C)WHERE (DEPTNO=20 OR DEPTNO=10)AND JOB='MANAGER'? SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE (DEPTNO=20 OR DEPTNO=10)AND JOB='MANAGER' ORDER BY DEPTNO; 13>DISPLAY EMPLOYEES WHOSE EMPNO IS GREATER THAN 7799 AND LESS THEN 7901? SQL>SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE EMPNO>7799 AND EMPNO<7901 14>DISPLAY THE NAME WHICH START WITH 'J', ENDS WIH 'S' AND HAVING THE CHAR 'E' IN THE NAME? SQL>SELECT EMPNO,ENAME FROM EMP WHERE ENAME LIKE 'J%E%S'; 15>DISPLAY THE NAME OF 05 CHARS AND ENDS WITH 'S'? SQL>SELECT EMPNO,ENAME FROM EMP WHERE ENAME LIKE '____S'; 16>DISPLAY DEPT WISE TOTAL SALARY SQL>select deptno,sum(sal) from emp group by deptno; 17>DISPLAY AVG(SUM(SAL),SUM(AVG(SAL) AND SEE THE DIFFERENCE> SQL>SELECT AVG(SUM(SAL)),SUM(AVG(SAL)) ,AVG(SUM(SAL))-SUM(AVG(SAL)) FROM EMP GROUP BY EMPNO;
18>DISPLAY THE DEPT WHICH HAVING TWO OR MORE EMPLOYEE OF SAME JOB?
19>DISPLAY THE EMPLOYEE WHO JOIN THE COMPANY OTHER THAN THE YEAR 81? SQL>SELECT * FROM EMP WHERE HIREDATE NOT BETWEEN '01-JAN-81' AND '31-DEC-81';
20>DISPLAY THE EMPNO,ENAME,JOB USING SUB QUERY IN PLACE OF TABLE----INLINE VIEW? SQL>DOUBT SHOULD BE CLARFIED
21>DISPLAY THOSE EMPLOYEES WHOSE GRADE IS 3 AND JOB OTHER THAN MANAGER? SQL>/SELECT E.EMPNO,E.ENAME,S.GRADE,E.JOB FROM EMP E,SALGRADE S WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL AND S.GRADE=3 AND E.JOB NOT IN('MANAGER'); 24>DISPLAY THE EMPLOYEES WHO GET MAX(SAL) IN HIS DEPT? / SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE SAL IN(SELECT MAX(SAL) FROM EMP); 25>DISPLAY THE EMPNO,ENAME,JOB,DEPTNO,DNAME,LOC WITH DEPT WHICH AS NO EMPLOYEES? SQL> 26>DISPLAY MANAGERS NAMES AND TOTAL SALARY PAID FOR EMPLOYEE UNDER THEM? SQL>SELECT B.ENAME,SUM(A.SAL) FROM EMP A,EMP B WHERE B.EMPNO=A.MGR GROUP BY B.ENAME; 27>DISPLAY THE GRADES AND TOTAL SALARY PAID FOR SQL> SELECT B.GRADE,SUM(A.SAL) 2 FROM EMP A,SALGRADE B 3 WHERE A.SAL BETWEEN LOSAL AND HISAL 4 GROUP BY B.GRADE; EACH GRADE?
28>DISPLAY EACH DEPT NAME AND NO OF EMPLOYEES SQL> SELECT A.DEPTNO,B.DNAME,COUNT(*) 2 FROM EMP A,DEPT B 3 WHERE A.DEPTNO=B.DEPTNO 4 GROUP BY A.DEPTNO,B.DNAME;
WORKING IN IT
29>DISPLAY EACH JOB CATAGORIES AND NO OF EMPLOYEES WORKING IN IT? SQL> SELECT DISTINCT JOB,COUNT(*) 2 FROM EMP 3 GROUP BY JOB;
30>DISPLAY MANAGER WHO ARE MANAGER FOR LEAST NO OF SQL> SELECT A.ENAME,COUNT(*) 2 FROM EMP A,EMP B 3 WHERE A.EMPNO=B.MGR 4 GROUP BY A.ENAME;
EMPLOYEES?
31>DISPLAY MANAGER WHO ARE MANGER FOR LEAST NO OF EMPLOYEES SQL> 1 SELECT A.ENAME,COUNT(*) 2 FROM EMP A,EMP B 3 WHERE A.EMPNO=B.MGR 4 GROUP BY A.ENAME 5 HAVING COUNT(*)=(SELECT MIN(COUNT(*)) 6 FROM EMP 7* GROUP BY ENAME); SQL> 1 2 3 4 5*
SELECT A.ENAME,COUNT(*) FROM EMP A,EMP B WHERE A.EMPNO=B.MGR GROUP BY A.ENAME HAVING COUNT(*)<3;
32>DISPLAY LEAST 3 SALARY PAID EMPLOYEE SQL>SELECT ROWNUM,ENAME,SAL FROM (SELECT ROWNUM,ENAME,SAL FROM EMP ORDER BY SAL) GROUP BY ROWNUM,SAL,ENAME HAVING ROWNUM<=3;
33>DISPLAY THE DEPT WHERE MINIMUM NO OF EMPLOYEES WORKING? SQL>SELECT DEPTNO,COUNT(*) FROM EMP GROUP BY DEPTNO
34>DISPLAY THE ROW B/W 6 th AND 10th? SQL>SELECT ROWNUM,EMPNO,ENAME,SAL,JOB FROM EMP WHERE ROWNUM<10 MINUS SELECT ROWNUM,EMPNO,ENAME,SAL,JOB FROM EMP WHERE ROWNUM<6;
35>DISPLAY 9 ROW? SQL>SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING ROWNUM=9;
36>DISPLAY THE 4 th ROW AND THE LAST ROW? SQL>SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING ROWNUM=4 UNION SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING ROWNUM=(SELECT MAX(ROWNUM)FROM EMP);
37>DISPLAY THE LAST 10 ROWS? SQL.SELECT ROWNUM,ENAME FROM EMP MINUS SELECT ROWNUM,ENAME FROM EMP WHERE ROWNUM<=(SELECT MAX(ROWNUM)-10 FROM EMP); 38>DISPLAY THE LAST 1st 6 ROWS? SQL>SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME MINUS SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING ROWNUM>=7;
39>DISPLAY ALTERNATIVE ROWS? SQL>SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING MOD(ROWNUM,2)=0 40>DISPLAY THE EMPLOYEE WHO GET SAME SALARY? SQL> SELECT * FROM EMP WHERE SAL IN(SELECT SAL FROM EMP GROUP BY SAL HAVING COUNT(SAL)>1) 41>DISPLAY 'A' IF SAL IS MORE THAN COMM ELSE 'B'? SQL>SELECT SAL ,COMM, DECODE( GREATEST(SAL,NVL(COMM,0)),SAL,'A',COMM,'B') FROM EMP; 42>DISPLAY THE EMPLOYEE WHO WORK WITH BLAKE AND HAVING GRADE>=3? SQL>SELECT A.ENAME,G.GRADE FROM EMP A,EMP B,SALGRADE G WHERE B.EMPNO=A.MGR AND B.SAL BETWEEN G.LOSAL AND G.HISAL AND B.ENAME LIKE 'BLAKE' AND G.GRADE>=3; 43>DISPLAY THOSE EMPLOYEES WHOSE MANAGER GETTING SALARY>=3000? SQL>SELECT A.ENAME,A.JOB FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND B.SAL>=3000; 44>DISPLAY THE JOB WHICH HAVING MORE EMPLOYEES OF GRADE 3? SQL>SELECT A.JOB,COUNT(*),G.GRADE FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL GROUP BY A.JOB,G.GRADE HAVING COUNT(*)>(SELECT MAX(COUNT(*)) FROM EMP GROUP BY EMPNO) AND G.GRADE=3; 45> DISPLAY THE GRADE WHICH HAVING MORE EMPLOYEES? SQL>SELECT COUNT(*),G.GRADE FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL GROUP BY G.GRADE HAVING COUNT(*)>(SELECT MAX(COUNT(*)) FROM EMP GROUP BY JOB)
46>PRINT WEBNOLOGY AS WEB-NO-LOGY? SQL>SELECT 'WEBNOLOGY' ,DECODE('WEBNOLOGY' ,'WEBNOLOGY' ,'WEB_NO_LOGY' ) FROM DUAL
-----------------------------------------------------------------------1.DISPLAY THOSE EMPLOYEES WHO GET SAME SALARY? SQL>SELECT A.ENAME,A.SAL FROM EMP A WHERE SAL IN(SELECT B.SAL FROM EMP B GROUP BY B.SAL HAVING COUNT(*)>1) / 2>DISPLAY LAST 5 RECORDS? SQL>SELECT ROWNUM,ENAME FROM EMP MINUS SELECT ROWNUM,ENAME FROM EMP WHERE ROWNUM<=(SELECT MAX(ROWNUM)-5 FROM EMP) 3>DISPLAY THE ALTERNATIVE RECORDS? SQL>SELECT ROWNUM,ENAME FROM EMP GROUP BY ROWNUM,ENAME HAVING MOD(ROWNUM,2)=1 / 4>DISPLAY THOSE EMPLOYEES WHO ARE NOT MANAGER? SQL>SELECT ENAME,JOB FROM EMP WHERE JOB NOT IN('MANAGER') 5>DISPLAY THE THIRD HIGEST PAID EMPLOYEE? SQL>SELECT ROWNUM,ENAME,SAL FROM(SELECT ROWNUM,ENAME,SAL FROM EMP ORDER BY SAL DESC) GROUP BY ROWNUM,ENAME,SAL HAVING ROWNUM=3 6>DISPLAY 7th RECORD? SOL>SELECT ROWNUM ,EMPNO,ENAME FROM(SELECT ROWNUM,EMPNO,ENAME FROM EMP
ORDER BY ROWNUM ASC) GROUP BY ROWNUM,EMPNO,ENAME HAVING ROWNUM=7 7>DISPLAY RECORDS B/W 10th TO 12th? SQL>SELECT ROWNUM ,EMPNO,ENAME FROM(SELECT ROWNUM,EMPNO,ENAME FROM EMP ORDER BY ROWNUM ASC) GROUP BY ROWNUM,EMPNO,ENAME HAVING ROWNUM BETWEEN 10 AND 12 8>DISPLAY LAST RECORD? SQL>SELECT ROWNUM,EMPNO,ENAME FROM EMP GROUP BY ROWNUM,EMPNO,ENAME HAVING ROWNUM=(SELECT MAX(ROWNUM)FROM EMP) 10>DISPLAY TH E EMPLOYEE WHO GET MAX SAL IN THEIR SQL>SELECT ENAME,SAL FROM EMP WHERE SAL IN(SELECT MAX(SAL) FROM EMP) DEPT?
11>DISPLAY THE EMPLOYEE WHO GWT MORE SALARY THAN AVG SALARY IN THEIR DEPT? SQL>SELECT ENAME,SAL FROM EMP WHERE SAL >(SELECT AVG(SAL) FROM EMP) 12>DISPLAY THE NAME OF MANAGER FOR EACH EMPLOYEE? SQL>SELECT A.ENAME,B.ENAME FROM EMP A, EMP B WHERE A.MGR=B.EMPNO 13>DISPLAY THE EMPLOYEE WHO JOIN THE DEPT BEFORE THEIR MANAGER? SQL>SELECT A.ENAME FROM EMP A, EMP B WHERE A.MGR=B.EMPNO AND A.HIREDATE>B.HIREDATE 14>DISPLAY THE FIRST FIVE HIGHEST PAID EMPLOYEE? SQL>SELECT ROWNUM ,SAL FROM(SELECT SAL FROM EMP ORDER BY SAL) GROUP BY ROWNUM,SAL HAVING ROWNUM<=5 / 15>DISPLAY LAST FIVE LEAST PAID EMPLOYEES?
SQL>SELECT LPAD(' FROM DUAL UNION SELECT LPAD(' ',4,'*') FROM DUAL UNION SELECT LPAD(' ',5,'*') FROM DUAL UNION SELECT LPAD(' ',6,'*') FROM DUAL
17>PRINT LIKE A AS ASH ASHO ASHOK SQL>SELECT LPAD(' ',3,'A') FROM DUAL UNION SELECT LPAD(' ',4,'AS') FROM DUAL UNION SELECT LPAD(' ',5,'ASH') FROM DUAL UNION SELECT LPAD(' ',6,'ASHO') FROM DUAL UNION SELECT LPAD(' ',7,'ASHOK') FROM DUAL 18>DISPLAY SQL>SELECT FROM EMP START WITH CONNECT BY THE HIEARCHIES OF EMPLOYEES? LPAD(' ',LEVEL*3,'')||ENAME MGR IS NULL PRIOR EMPNO=MGR
19>DISPLAY THE MANAGER WHO HAS MORE THAN THREE EMPLOYEES UNDER HIM? SQL>SELECT A.ENAME,COUNT(*) FROM EMP A,EMP B
WHERE A.EMPNO=B.MGR GROUP BY A.ENAME HAVING COUNT(*)>3 20>DISPLAY THE EMPLOYEE WHO HAS SAME JOB IN DEPT?
21>DISPLAY ALL MANAGER NAME? SQL>SELECT A.ENAME,A.EMPNO,COUNT(*) FROM EMP A,EMP B WHERE A.EMPNO=B.MGR GROUP BY A.ENAME,A.EMPNO 22>DISPLAY THE MANAGER NAME UNDER WHOM SALESMAN WORKS? SQL>SELECT B.ENAME,B.DEPTNO,A.JOB,A.ENAME,A.DEPTNO FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND A.JOB='SALESMAN' 23>DISPLAY THE EMPLOYEE WHO WORKS IN THEIR MANAGER DEPT? SQL>SELECT A.ENAME FROM EMP A WHERE A.DEPTNO=(SELECT B.DEPTNO FROM EMP B WHERE A.MGR=B.EMPNO) 24>DISPLAY THE EMPLOYEE WHO WORKS WITH FORD AND GETTING SAME SALARY? SQL>SELECT A.ENAME FROM EMP A,EMP B WHERE B.EMPNO=A.MGR AND B.ENAME='FORD' AND A.SAL=B.SAL 26>DISPLAY THE EMPLOYEE WHO WORKS IN DEPT=20 AND JOB LIKE SALES DEPT? SQL>SELECT ENAME,DEPTNO,JOB FROM EMP WHERE DEPTNO=20 AND JOB='SALESMAN'; 27>DISPLAY THE MANAGER NAME AND THEIR DEPT NAME? SQL>SELECT A.ENAME,D.DNAME FROM EMP A,EMP B,DEPT D WHERE A.MGR=B.EMPNO AND A.DEPTNO=B.DEPTNO GROUP BY A.ENAME,D.DNAME
28>DISPLAY THE EMPLOYEE NO EVEN/ODD? SQLSELECT EMPNO FROM EMP WHERE MOD(EMPNO,2)=1 SQL>SELECT EMPNO FROM EMP WHERE MOD(EMPNO,2)=O 29>DISPLAY THE RECORD NO OF EMP/DEPT TOGETHER AS SQL>SELECT 'DEPT'TABL ,COUNT(*)RECORDNO FROM DEPT UNION SELECT 'EMP' TABL ,COUNT(*)RECORDNO FROM EMP 30>DISPLAY THE SALARY OF ALL MANAGER? SQL>SELECT A.ENAME,A.SAL FROM EMP A,EMP B WHERE A.MGR=B.EMPNO 31>DISPLAY THE EMPLOYEE WHO JOINED FIRST HALF OF THE MONTH? SQL>SELECT ENAME,JOB,HIREDATE FROM EMP WHERE SUBSTR(HIREDATE,1,2)BETWEEN 1 AND 15 / 32>DISPLAY THE MIDDLE CHAR OF NAME , IF NAMES KEEPS ODD NUMBER OF CHARACTERS? SQL>SELECT ENAME,SUBSTR(ENAME,ROUND(LENGTH(ENAME)/2),1) FROM EMP
33>DISPLAY EMPLOYEES WHOSE NAME AND THEIR MANAGER NAME START WITH SAME CHARCTER? SQL>SELECT A.ENAME,B.ENAME FROM EMP A, EMP B WHERE A.MGR=B.EMPNO AND ASCII(A.ENAME)=ASCII(B.ENAME)
1>DISPLAY THOSE EMPLOYEES WHOSE DEPT IS SAME AS THEIR MANAGER DEPT? SQL>SELECT A.ENAME,A.DEPTNO FROM EMP A
WHERE A.DEPTNO=(SELECT B.DEPTNO FROM EMP B WHERE A.MGR=B.EMPNO) 2>DISPLAY THOSE EMPLOYEES WHO SAL IS GREATER THEN THE AVG SAL OF DEPT? SQL.SELECT A.ENAME,A. SAL FROM EMP A WHERE A.SAL>(SELECT AVG(SAL) FROM EMP B WHERE A.DEPTNO=B.DEPTNO) 3>DISPLAY THE EMPLOYEE WHO JOINED BEFORE HIS MANAGER? SQL>SELECT A.ENAME,A.HIREDATE FROM EMP A WHERE A.HIREDATE<(SELECT B.HIREDATE FROM EMP WHERE A.MGR=B.EMPNO)
4>DISPLAY THOSE EMPLOYEE WHO JOINED IN SAME DATE AS THEIR MANAGER? SQL>SELECT A.ENAME,A.HIREDATE FROM EMP A WHERE A.HIREDATE=(SELECT B.HIREDATE FROM EMP B WHERE A.MGR=B.EMPNO) 5>DISPLAY THOSE MANAGER WHOSE SALARY IS GREATER THAN THEIR EMPLOYEE? SQL>SELECT A.ENAME,A.SAL FROM EMP A WHERE A.SAL>(SELECT B.SAL FROM EMP WHERE A.MGR=B.EMPNO) 6>DISPLAY THOSE EMPLOYEES WHOSE JOB='MANAGER' AND DO NOT HAVE SUBORDINATES SQL>SELECT B.ENAME,COUNT(A.ENAME) FROM EMP A,EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME HAVING COUNT(A.ENAME)<=0 /
7>DISPLAY THOSE EMPLOYEES WHOSE SALARY IS SAME AS THEIR MANAGER SALARY SQL>SELECT A.ENAME,A.SAL FROM EMP A WHERE A.SAL=(SELECT B.SAL FROM EMP B WHERE A.MGR=B.EMPNO) 8>DISPLAY MANAGER WHOSE SALARY IS LESS THAN THEIR EMPLOYEES SALARY SQL> SELECT A.ENAME,A.SAL FROM EMP A
WHERE
JOINS QURIES -=-=-=-=-=-=-=1>DISPLAY MANAGERS AND THEIR SALARY GRADES? SQL>SELECT A.ENAME,A.SAL,G.GRADE FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL AND A.JOB='MANAGER' 2>DISPLAY THE EMPLOYEES NAMES AND DEPT NAMES BUT SALARY SHOULD BE 2000 AND MORE? SQL>SELECT A.ENAME,D.DNAME FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO AND A.SAL >=2000 3>DISPLAY THE EMPLOYEES NAMES AND DEPT NAMES BUT SALARY IS MORE THAN 2000? SQL>SELECT A.ENAME,D.DNAME FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO AND A.SAL >2000
4>DISPLAY EMPLOYEES NAMES WHOSE GRADE IS 3 AND THEIR JOB IS CLERCK OR SALESMAN? SQL>SELECT A.ENAME,G.GRADE,A.JOB FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL AND G.GRADE=3 / AND (A.JOB='CLERCK' OR A.JOB='SALESMAN')
5>DISPALY THE EMPLOYEES NAME AND THEIR SALARY GRADE SQL>SELECT A.ENAME,G.GRADE,A.JOB FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL 6>DISPLAY THE EMPLOYEES NAME AND THEIR MANAGERS NAME? SQL>SELECT A.ENAME,B.ENAME FROM EMP A, EMP B
WHERE A.MGR=B.EMPNO 7>DISPLAY THE EMPLOYEE AND MANAGERS NAMES AND EMPLOYEES WHO JOINED BEFORE THEIR MANAGER? SQL>SELECT A.ENAME,B.ENAME,A.HIREDATE FROM EMP A, EMP B WHERE A.MGR=B.EMPNO AND A.HIREDATE<B.HIREDATE HIREDATES OF THOSE
GROUP BY _-_-_-_-_-_-_ 1>DISPLAY ALL THE DEPARTMENT NAMES AND TOTAL SQL>SELECT DEPTNO,SAL,COUNT(*) FROM EMP GROUP BY DEPTNO,SAL 2>DISPLAY JOB AND TOTAL SALARY PAID FOR EACH JOB? SQL>SELECT A.JOB,SUM(B.SAL) FROM EMP A,EMP B WHERE A.EMPNO=B.EMPNO GROUP BY A.JOB 3>DISPLAY LOCATIONWISE AND JOB WISE TOTAL SALARY? SQL>SELECT A.JOB,SUM(B.SAL) FROM EMP A,EMP B WHERE A.EMPNO=B.EMPNO GROUP BY A.JOB UNION SELECT D.LOC,SUM(A.SAL) FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO GROUP BY D.LOC / 4>DISPLAY THE NAMES OF MANAGER WITH TOTAL NO EMPLOYEES WORKING UNDER THEM? SQL>SELECT B.ENAME,COUNT(A.ENAME) FROM EMP A,EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME / 5>DISPLAY GRADES AND NO. OF EMPLOYEES AVAILABLE FOR EACH GRADE? SQL>SELECT G.GRADE,COUNT(A.ENAME) FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL GROUP BY G.GRADE / SALARY PAID FOR EACH DEPT?
HAVING CLAUSE -_-_-_-_-_-_-_-_-_-_ 1.DISPLAY MANAGERS WHO ARE HAVING THREE OR MORE SUBORDINATE SQL>SELECT B.ENAME,COUNT(A.ENAME) FROM EMP A,EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME HAVING COUNT(A.ENAME)>3 / 2.DISPLAY DEPARTMENT WHICH PAYING MORE THAN 10000 SALARIES PER MONTH SQL>DOUBTS 3>DISPLAY THOSE GRADES FOR WHICH ATLEAST 2 EMPLOYEES ARE AVAILABLE? SQL>SELECT G.GRADE,COUNT(A.ENAME) FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL GROUP BY G.GRADE HAVING COUNT(A.ENAME)>=2 4>DISPLAY THE DEPARTMENT WHERE MAXIMUM NO OF SQL>SELECT DEPTNO,COUNT(ENAME) FROM EMP GROUP BY DEPTNO EMPLOYEES WORKING?
OTHER QUERIES USING(GROUP BY/HAVING) =================================== 1>DISPLAY THE MANAGER NAMES AND TOTAL SALARY PAID THEM? SELECT B.ENAME,SUM(A.SAL) FROM EMP A,EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME /
2>DISPLAY THE GRADES AND TOTAL SALARY PAID FOR EACH GRADE? SQL>SELECT G.GRADE,SUM(A.SAL) FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL GROUP BY G.GRADE / 3>DISPLAY EACH DEPT NAME AND NO OF EMPLOYEES SQL>SELECT D.DNAME,COUNT(A.ENAME) WORKING IN IT?
FROM EMP A ,DEPT D WHERE A.DEPTNO=D.DEPTNO GROUP BY D.DNAME / 4>DISPLAY EACH JOB CATAGORY AND NO OF EMPLOYEE WORKING FOR IT? SQL>SELECT A.JOB,COUNT(B.ENAME) FROM EMP A,EMP B WHERE A.EMPNO=B.EMPNO GROUP BY A.JOB / 5>DISPLAY MANAGERS WHO ARE MANAGERS FOR LEAST NO OF WMPLOYEES SQL>SELECT B.ENAME,COUNT(A.EMPNO) FROM EMP A,EMP B WHERE B.EMPNO=A.MGR GROUP BY B.ENAME HAVING COUNT(A.EMPNO)>=(SELECT MAX(COUNT(A.EMPNO)) FROM EMP GROUP BY B.ENAME ) /
7.> DISPLAY THE DEPT WHERE MIN NO OF EMPLOYEES SQL>SELECT DEPTNO,COUNT(EMPNO) FROM EMP GROUP BY DEPTNO HAVING COUNT(EMPNO)>=(SELECT MAX(COUNT(EMPNO)) FROM EMP GROUP BY DEPTNO) /
WORKING?
SET OPERATORS ------------------------1> DISPLAY THOSE WHO ARE EMPLOYEES AS WELL AS SQL>SELECT ENAME,JOB FROM EMP INTERSECT SELECT ENAME,JOB FROM EMP WHERE JOB='MANAGER' / 2>DISPLAY THOSE WHO ARE NOT MANAGER? SQL>SELECT ENAME FROM EMP MINUS SELECT ENAME FROM EMP MANAGERS?
3>DISPLAY THOSE DEPT WHICH DONOT HAVE EMPLOYEES? SQL>SELECT DEPTNO FROM DEPT MINUS SELECT D.DEPTNO FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO /
4>3>DISPLAY THOSE DEPT WHICH SQL>SELECT DEPTNO FROM DEPT INTERSECT SELECT D.DEPTNO FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO /
HAVE EMPLOYEES?
5>FIND NO. OF ALL RECORDS FROM ALL THE TABLE? SQL>SELECT 'EMP'EMP,COUNT(*)RECORD FROM EMP UNION SELECT 'DEPT'DEPT,COUNT(*)RECORD FROM DEPT UNION SELECT 'SALGRADE'SALGRADE,COUNT(*)RECORD FROM SALGRADE / FUNCTION-BASED QUERIES IIIIIIIIIIIIIIIIIIIIIIIII 1>DISPLAY THOSE EMPLOYEES WHO JOINED IN THE YEAR SQL>SELECT ENAME,HIREDATE,JOB FROM EMP WHERE (SUBSTR(HIREDATE,8,2)=82 OR 82 AND 83
SUBSTR(HIREDATE,8,2)=83)
2>DISPLAY THOSE EMPLOYEES WHO JOINED IN FIRST HALF OF ANY MONTH? SQL>SELECT ENAME,HIREDATE,JOB FROM EMP WHERE SUBSTR(HIREDATE,1,2) BETWEEN 1 AND 15 / 3>DISPLAY THOSE EMPLOYEES WHOSE NAME AND THIER MANAGER NAME START WITH SAME
CHARACTER? SQL>SELECT B.ENAME,A.ENAME FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND ASCII(B.ENAME)=ASCII(A.ENAME) / 4>DISPLAY THOSE EMPLOYEES WHOSE NAME AND JOB OF CHARACTERS? SQL>SELECT ENAME,JOB FROM EMP WHERE LENGTH(ENAME)=LENGTH(JOB) / #OTHERS IIIIIIIIIIIIII 1>DISPLAY THOSE EMPLOYEES WHO JOINED THE COMPANY 20 OR MORE BEFORE? SQL>SELECT EMPNO,ENAME,JOB,HIREDATE FROM EMP WHERE MONTHS_BETWEEN(SYSDATE,HIREDATE)/12>=20 / 2>DISPLAY THE LAST DAY OF FEB 2001? SQL>SELECT LAST_DAY('01-FEB-01') FROM DUAL / 3>DISPLAY THE DATE ON FIRST MONDAY OF JAN 2001: SQL>SELECT NEXT_DAY('31-DEC-00','MON') FROM DUAL / 4>DISPLAY THE CURRENT TIME? SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'HH:MI:SS') AS TIME FROM DUAL COLOUMNS HAVING SAME NUMBER
/ 5>DISPLAY HTE CURRENT YEAR? SQL>SELECT SYSDATE,TO_CHAR(SYSDATE,'FMYYYY')AS YEAR FROM DUAL / 7>DISPLAY THE NET SALARY PAID TO EACH EMPLOYEE? SQL>SELECT ENAME,SAL+NVL(COMM,0) FROM EMP /
8>SHOW 10% INCENTIVES FOR EACH EMPLOYEE ONSALARY OR COMM WHICH EVER IS GREATER? SQL>SELECT ENAME,SAL,COMM,GREATEST(SAL,NVL(COMM,0))*.01 FROM EMP GROUP BY ENAME,SAL,COMM / 9>SHOW THE CURRENT USER NAME? SQL>SELECT USER FROM DUAL / 10>DISPLAY THE 3rd HIGHEST PAID EMPLOYEE? SQL>SELECT ROWNUM,ENAME,SAL FROM(SELECT DISTINCT SAL,ENAME FROM EMP ORDER BY SAL DESC) GROUP BY ROWNUM,ENAME,SAL HAVING ROWNUM=3 / 11>DISPLAY THE MANAGER UNDER WHICH 5 PERSON ARE WORKING WHO GETTING SALARY>=5000? SQL>SELECT B.ENAME,COUNT(A.ENAME),B.SAL FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND B.SAL>=5000 GROUP BY B.ENAME,B.SAL HAVING COUNT(*)<=5 / 12>DISPLAY THOSE EMPLOYEE WHO HAVE JOINED THE COMPANY IN THE MONTH OF JAN? SQL>SELECT ENAME,HIREDATE FROM EMP WHERE SUBSTR(HIREDATE,4,3)='JAN' / 13>DISPLAY THE MANAGERS HAVING MORE THAN 3 EMPLOYEES UNDER THEM? SQL>SELECT B.ENAME,COUNT(A.ENAME) FROM EMP A,EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME HAVING COUNT(A.ENAME)>=3 / 14>DISPLAY DEPARTMENT LOCATION WITHOT ANY SPACE? SQL>SELECT REPLACE(LOC,' ','') FROM DEPT / 15>DISPLAY THOSE EMPLOYEES WHO ARE WORKING UNDER THOSE MANAGER WHO ARE IN SALES DEPARTMENT? SQL>SELECT A.ENAME,B.ENAME,D.DNAME FROM EMP A,EMP B,DEPT D WHERE A.MGR=B.EMPNO AND B.DEPTNO=D.DEPTNO AND D.DNAME='SALES' /
#SUB QURIES =-=-=-=-=-=-=1>DISPLAY THOSE EMPLOYEES WHOSE DEPT IS SALES? SQL>SELECT A.ENAME,D.DNAME FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO AND D.DNAME='SALES' / 2>DISPLAY THOSE EMPLOYEE WHOSE GRADE IS 3? SQL>SELECT A.ENAME,G.GRADE FROM EMP A,SALGRADE G WHERE A.SAL BETWEEN G.LOSAL AND G.HISAL AND G.GRADE=3 / 3>DISPLAY THOSE EMPLOYEES WHOSE DEPARTMENT IS SALES OR ACCOUNTING? SQL>SELECT A.ENAME,D.DNAME FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO AND (D.DNAME='SALES' OR D.DNAME='ACCOUNTING') / 4>DISPLAY THOSE EMPLOYEES WHO ARE IN BOSTON DEPT SQL>SELECT A.ENAME,D.LOC FROM EMP A,DEPT D WHERE A.DEPTNO=D.DEPTNO AND D.LOC='BOSTON' / 5>DISPLAY THOSE EMPLOYEES WHOSE NAME START WITH 'J' AND HIS DEPT ENDS WITH 'S'? SQL>SELECT A.ENAME,D.DNAME FROM EMP A, DEPT D WHERE A.DEPTNO=D.DEPTNO AND (ENAME LIKE 'J%' AND D.DNAME LIKE '%S') / 6>DISPLAY THOSE EMPLOYEES WHO ARE WORKING WNDER KING? SQL>SELECT A.ENAME,B.ENAME FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND B.ENAME='KING' / 7>DISPLAY THOSE EMPLOYEES WHO ARE WORKING INDER JONES AND CLARK? SQL>SELECT A.ENAME,B.ENAME FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND (B.ENAME='JONES' OR B.ENAME='CLARK')
/ 8>DISPLAY THOSE EMPLOYEES WHOSE MANAGER JOINED IN THE YEAR ie 81 SQL>SELECT A.ENAME,B.ENAME,B.HIREDATE FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND SUBSTR(B.HIREDATE,8,2)=81 /
TREE WALK QUERIES IIIIIIIIIIIIIIIIIIIIIIII 1>DISPLAY ALL EMPLOYEES IN TREE WALK STYLE? SQL>SELECT LPAD(' ',LEVEL*3,' ')||ENAME FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR / 2>DISPLAY THE EMPLOYEE IN HIEARCHY STARTING FROM JONES? SQL>SELECT LPAD(' ',LEVEL*3,' ')||ENAME FROM EMP START WITH ENAME='JONES' CONNECT BY PRIOR EMPNO=MGR / 3>DISPLAY THE TOTAL NO. OF EMPLOYEES WORKING IN COMPLETE HIERARCHY THE JONES? SQL>
UNDER
4>DISPLAY LAST LEVEL EMPLOYEE? SQL>SELECT LEVEL,ENAME FROM EMP WHERE LEVEL=(SELECT MAX(LEVEL) FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR) START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR / 5>DISPLAY THOSE EMPLOYEES WHOSE LEVEL HIEARACHY IS SQL>SELECT LEVEL,ENAME FROM EMP WHERE MOD(LEVEL,2)=1 START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR / 6>DISPLAY THE 2nd LEVEL EMPLOYEE SQL>SELECT LEVEL,ENAME,JOB,SAL FROM EMP WHERE LEVEL=2 START WITH MGR IS NULL
ODD?
CONNECT BY PRIOR EMPNO=MGR / 7>DISPLAY TOTAL SALARY PAID UNDER BLAKE? SQL>SELECT B.ENAME,SUM(A.SAL) FROM EMP A, EMP B WHERE A.MGR=B.EMPNO GROUP BY B.ENAME HAVING B.ENAME=(SELECT B.ENAME FROM EMP B WHERE ENAME='BLAKE') / 8>DISPLAY HOW MANY NO OF EMPLOYEES ARE PRESENT AT LEVEL NO OF 3? SQL>SELECT LEVEL, COUNT(*) FROM EMP WHERE LEVEL=3 GROUP BY LEVEL START WITH MGR IS NULL CONNECT BY PRIOR EMPNO=MGR /
XXXXXXXXXXXXXXXXX