So you have finally found your dream job in SQL but are wondering how to crack the SQL Interview and what could be the probable 2020 SQL Interview Questions. Every interview is different and the scope of a job is different too. Keeping this in mind we have designed the most common SQL Interview Questions and Answers for 2020 to help you get success in your interview.
Below is the list of 2020 SQL Interview Questions and Answers, which can be asked during an interview for fresher and experience. These top interview questions are divided into two parts:
This first part covers basic interview questions and answers
Answer:
SQL stands for a structured query language, and it is used to communicate with the database. This is a standard language used to perform several tasks such as retrieval, updating, insertion, and deletion of data from a database.
Answer:
Select * from table_name where salary = (select max(salary) from table_name);
For example
Select * from employee where salary =(select max(salary) from employee);
Answer:
This is the basic SQL interview questions asked in a SQL interview. There are multiple ways to solve this question, below three are the easiest solution for it.
1st: Select max (salary) from employee where salary not in (select max(salary) from employee).
Note: This solution is only to find the 2nd highest salary, if the question got the change to find the 3rd or 4th highest salary then this will not work. You need to execute the below query for finding nth highest salary.
2nd: Select Salary from employee where salary in (select salary from employee where level = &topnth connect by prior Salary > Salary group by level).
Note: If you run the above query it will ask for entering the value of topnth, if you enter 2 it will show the result for 2 and if you enter 3 it will give the result for 3 likewise this query is generic.
3rd: Select salary from employee where salary in (select salary from (select unique salary from employee order by salary desc) group by rownum, salary having rownum = &topnth).
Execute as same as 2nd query execute.
Answer:
There are multiple ways to solve this question, below two are the easiest solution for it.
1st: Select min (salary) from employee where salary not in (select min(salary) from employee).
Note: This solution is only to find the 2nd lowest salary, if the question got the change to find the 3rd or 4th lowest salary then this will not work. You need to execute the below query for finding nth highest salary.
2nd: Select Salary from employee where salary in (select salary from employee where level = &lownth connect by prior Salary < Salary group by level).
Note: If you run the above query it will ask for entering the value of lownth, if you entering 2 it will show the result for 2 and if you enter 3 it will give the result for 3 likewise this query is generic.
Answer:
Both the function is used to convert a NULL value to an actual value
NVL: Syntax
NVL (EXPR1, EXPR2)
EXPR1: Is the source value or expression that may contain NULL.
EXPR2: Is the target value for converting NULL.
Note: If EXPR1 is character data then EXPR2 may any data type.
For example: select NVL (100,200) from dual
Output: 100
Select NVL(null,200) from dual;
Output: 200
NVL2: Syntax
NVL2(expr1,expr2,expr3)
If expr1 is not null, NVL2 returns expr2. If expr1 is null then, NVL2 returns expr3.
The data type of the return value is always the same as the data type of expr2 unless expr2 is character data.
Example: select nvl2(100,200,300) from dual;
Output: 200
Select nvl2 (null,200,300) from dual;
Output: 300
| Name | |
| Anubhav | anubhavraj@gmail.com |
| Basant | basantverma@yahoo.in |
| Sumit | Sumitsinha@hotmail.com |
| Amit | anuragamit@gmail.com |
So write the query to get the result only @gmail.com, @yahoo.in, @hotmail.com (Since we have two gmail.com and we need to fetch only distinct domain).
Answer:
Select distinct (substr (Email, Instr (Email,’@’,1,1))) from employee;
Let us now have a look at the advanced Interview Questions.
| Name | Age | Salary |
| Anubhav | 26 | 50000 |
| Anurag | 29 | 60000 |
| Basant | 27 | 40000 |
| Rahul | 28 | 45000 |
| Anubhav | 27 | 48000 |
Answer:
Select Name, count(1) as frequency from Employee
Group by Name having count(1) > 1
Answer:
This is the advanced SQL Interview Questions asked in an interview. Delete from Employee where name in (Select name from employee group by age, salary having count(*) > 1));
Or
Delete from employee where rowid not in (select max (rowid) from employee group by name);
Answer:
For even number
Select * from employee where empno in (select empno from employee group by empno, rownum having mod(rownum,2) = 0);
For odd number:
Select * from employee where empno in (select empno from employee group by empno, rownum having mod(rownum,2) != 0);
Let us move to the next SQL Interview Questions.
Answer:
create a new table with data and structure copied from another table
Select * into new table from an existing table;
Create an empty table with the same structure as some other table
Select * into new_table from existing_table where 1=2;
Or
Create table new table like an existing table;
Answer:
Select * from table_one
Intersect
Select * from table_two;
Answer:
Select * from table_one
Minus
Select * from table_two;
Not a member yet? Register now
Are you a member? Login now