1) HOW TO FIND DUPLICATE RECORDS?
SELECT * FROM EMP WHERE ROWID NOT
IN (SELECT MAX (ROWID) FROM EMP GROUP BY JOB);
2) HOW TO DISPLAY ODD NUMBER
ROWS?
SELECT RN,SAL FROM (SELECT
ROWNUM RN,SAL FROM EMP) WHERE MOD(RN,2)=1;
3) HOW TO DISPLAY EVEN NUMBER
ROWS?
SELECT RN,SAL FROM (SELECT
ROWNUM RN,SAL FROM EMP) WHERE MOD(RN,2)=0;
4) HOW TO REMOVE DUPLICATE
RECORDS?
DELETE FROM EMP WHERE ROWID NOT
IN (SELECT MAX(ROWID) FROM EMP GROUP BY JOB);
5) HOW TO DISPLAY FIRST 4
RECORDS?
SELECT ROWNUM,ENAME,SAL FROM EMP
WHERE ROWNUM<5;
6) HOW TO DISPLAY TOP 5
SALARIES?
SELECT ROWNUM,EMPNO,ENAME,SAL
FROM (SELECT EMPNO,ENAME,SAL FROM EMP ORDER BY SAL DESC) WHERE ROWNUM<=5;
7) HOW TO DISPLAY THE WITHOUT
DUPLICATE ROWS?
SELECT * FROM EMP WHERE ROWED IN
(SELECT MAX(ROWID) FROM EMP GROUP BY JOB);
8) FIND OUT NTH HIGHEST SALARIES
FROM EMP TABLE?
SELECT DISTINCT(A.SAL)FROM EMP A
WHERE &N=(SELECT COUNT(DISTINCT(B.SAL)FROM EMP B
WHERE A.SAL=B.SAL);
9) HOW TO DISPLAY RECORDS FROM 5
TH TO 9 TH RECORDS ONLY?
SELECT * FROM EMP WHERE
ROWNUM<=10;
MINUS
SELECT * FROM EMP WHERE ROWNUM<=5;
OR(DYNAMICALLY)
SELECT RN,SAL FROM(SELECT ROWNUM
RN,SAL FROM EMP) WHERE RN BETWEEN &N1 AND &N2;
10) HOW TO DISPLAY THE 2 ND
HIGHEST SALARY?
SELECT EMPNO,ENAME,SAL,R
FROM(SELECT EMPNO,ENAME,SAL,DENSE_RANK() OVER(ORDER BY SAL DESC) R FROM
EMP)WHERE R=2;
11) HOW TO REMOVE SPACES IN
BETWEEN STRING?
SELECT
REPLACE(‘BALAJIXXXBALU’,’X’,’ ‘)FROM DUAL;
12) HOW TO DISPLAY THE HOW MANY
DUPLICATE NAMES IN A TABLE?
SELECT JOB FROM(SELECT
JOB,COUNT(JOB)FROM EMP GROUP BY JOB HAVING COUNT(JOB) >1);
13) HOW TO DISPLAY THE HALF OF
THE ROWS?
SELECT SAL FROM (SELECT ROWNUM
RN,SAL FROM EMP)WHERE RN 6;
14) DISPLAY DEPT NUMBERS AND
TOTAL NUMBER OF EMPLOYEES WORKING IN EACH DEPARTMENT?
SELECT DEPTNO,COUNT(DEPT)FROM
EMP GROUP BY DEPTNO;
15) DISPLAY THE DEPARTMENT
NUMBERS AND TOTAL SALARY FOR EACH DEPT?
SELECT DEPTNO,SUM(SAL)FROM EMP
GROUP BY DEPTNO;
16) DISPLAY THE DEPT NUMBERS
WITH MORETHEN THREE EMPLOYEES IN EACH DEPT?
SELECT DEPTNO,COUNT(DEPTNO)FROM
EMP GROUP BY DEPTNO HAVING COUNT(*) >3;
17) HOW TO DISPLAY SINGLE ‘S’
LETTER STRING?
SELECT * FROM EMP WHERE
INSTR(JOB,’S’,1,1) 0 AND INSTR(JOB,’S’,1,2)=0;
18) HOW TO DISPLAY LAST 4
RECORDS?
SELECT * FROM EMP WHERE
ROWNUM<=(SELECT COUNT(*) FROM EMP)
MINUS
SELECT * FROM EMP WHERE ROWNUM<=(SELECT COUNT(*)-4 FROM EMP);
19) HOW TO USE ALL FUNCTIONS?
SELECT SUM(SAL),DEPTNO FROM EMP
WHERE SAL =500
GROUP BY DEPTNO
HAVING DEPTNO=10
ORDER BY DEPTNO DESC;
20) HOW WILL U IDENTIFY THE
DUPLICATES IN PARTICULAR COLUMN?
SELECT JOB,COUNT(*)FROM EMP
GROUP BY JOB HAVING COUNT(*)> 1;
21) WRITE A QUERY TO LIST OUT
THE EMPLOYEES WITH THERE RESPECT TO MGR LEVELS?
SELECT LPAD(‘*’,LEVEL2),EMPNO,ENAME,MGR
FROM EMP CONNECT BY PRIOR EMPNO=MGR START WITH EMPNO=7839;
22) WRITE A QUERY TO GENERATE
SEQUENCE NUMBERS FROM 1 TO THE SPECIFIED NUMBER N?
SELECT LEVEL FROM DUAL CONNECT BY LEVEL<=&N;
23)
https://www.youtube.com/watch?v=oPBWC4_Zmj0index=2list=PL9DF6E4B45C36D411
OUTPUT: HOW TO EXTRACT ONLY
YOUTUBE FROM ABOVE LINK?
Ans) select substr('https://www.youtube.com/watch?v=oPBWC4_Zmj0index=2list=PL9DF6E4B45C36D411',
instr('https://www.youtube.com/watch?v=oPBWC4_Zmj0index=2list=PL9DF6E4B45C36D411','.',1,1)+1,
instr('https://www.youtube.com/watch?v=oPBWC4_Zmj0index=2list=PL9DF6E4B45C36D411','.',1,2)
-
instr('https://www.youtube.com/watch?v=oPBWC4_Zmj0index=2list=PL9DF6E4B45C36D411','.',1,1)-1)from
dual;
24) BALAJI
OUTPUT: HOW TO COUNT HOW MANY
TIMES 'A' IS REPEATED?
Ans) SELECT
LENGTH('BALAJI')-LENGTH(REPLACE('BALAJI','A','')) from dual;
25) IN THE COLUMN ACCOUNT TYPE,
“SAVINGS ACCOUNT” AND “CURRENT ACCOUNT” ARE TWO DIFFERENT Values Present. THEY
GET CONVERTED TO “SB” AND “CA” IN TARGET.
WRITE QUERY TO VALIDATE THIS
WITH BOTH SOURCE AND TARGET TABLE IN SAME QUERY
Ans)
SELECT T1.ACCOUNT_NO,T1.ACCOUNT_TYPE
FROM EMP T1
INNER JOIN (SELECT ACCOUNT_NO,
CASE ACCOUNT_TYPE
WHEN 'SAVINGS ACCOUNT' THEN 'SB'
WHEN 'CURRENT ACCOUNT' THEN 'CA'
ELSE ACCOUNT_TYPE
END NEW_ACCOUNT_TYPE
FROM SOURCE) S1
ON T1.ACCOUNT_TYPE=S1.NEW_ACCOUNT_TYPE
AND T1.ACCOUNT_NO= S1.ACCOUNT_NO
26) SOURCE HAS 10 RECORDS AND
TARGET AND 8 RECORDS ONLY. HOW WILL YOU IDENTIFY THE MISSING RECORDS FROM THE
OUTPUT?
Ans)
SELECT S1.PK_COL,T1.PK_COL FROM SOURCE S1
LEFT OUTER JOIN TARGET T1
ON S1.PK_COL= T1.PK_COL
ORDER BY S1.PK_COL
or
SELECT PK_COL FROM SOURCE
WHERE PK_COL NOT IN (SELECT PK_COL FROM TARGET)
27) DATA FROM TABLE1 WITH 3
COLUMNS IS TRANSFERRED TO TABLE2 WITH 3 COLUMNS WITH NO TRANSFORMATIONS. WRITE QUERY/QUERIES TO VALIDATE THAT ALL THE
RECORDS WERE TRANSFERRED CORRECTLY?
Ans)
SELECT COL_1,COL_2,COL_3 FROM TABLE1
MINUS
SELECT COL_1,COL_2,COL_3 FROM TABLE2
28) DURING AN ETL TRANSFORMATION
FROM SOURCE TO TARGET WRITE QUERY TO SHOW ALL THE RECORDS FROM SOURCE WHICH WERE
NOT TRANSFERRED TO THE TARGET WITH USING “IN”?
Ans)
SELECT PK_COL FROM SOURCE
WHERE PK_COL NOT IN (SELECT PK_COL FROM TARGET)
29) Scenario Based questions.
Set operators
Table X
Table Y
29) Scenario Based questions.
Set operators
Table X
Name | Value |
A | 1 |
B | 2 |
C | 3 |
E | 6 |
G | 7 |
Table Y
Name | Value |
B | 3 |
C | 4 |
D | 5 |
E | 6 |
F | 7 |
MINUS
SELECT * FROM X
MINUS
SELECT * FROM Y;
O/P:-
UNION, UNION ALL AND INTERSECT
SELECT * FROM X
UNION
SELECT * FROM Y;
SELECT * FROM X
UNION ALL
SELECT * FROM Y;
SELECT * FROM X
INTERSECT
SELECT * FROM Y;
Equi JOINS
SELECT X.NAME,X.VALUE,Y.NAME,Y.VALUE FROM X X
JOIN Y Y
ON X.VALUE=Y.VALUE;
Left outer join:
SELECT X.NAME,X.VALUE,Y.NAME,Y.VALUE FROM X X
LEFT OUTER JOIN Y Y
ON X.VALUE=Y.VALUE;
Right outer join:
SELECT X.NAME,X.VALUE,Y.NAME,Y.VALUE FROM X X
RIGHT OUTER JOIN Y Y
ON X.VALUE=Y.VALUE;
Full ourter join:
SELECT X.NAME,X.VALUE,Y.NAME,Y.VALUE FROM X X
FULL OUTER JOIN Y Y
ON X.VALUE=Y.VALUE;
Example 2: