A sub query is a select statement containing another select statement. The inner query will be executed first, and based on the result, the outer query (parent query) will be executed
1. Simple sub query
2. Nested sub query
3. Multiple sub query
4. Correlated sub query
It is selected statement containing only one other select statement.
Q) --Get the second max sal from emp table.
select max( sal) from emp where sal <(select max( sal) from emp)
--Get the second minimumsal from the temp table
select min( sal) from emp where sal >(select min( sal) from emp)
It is a select statement containing another select statement which contains another select statement and so on....
A max of 32 select statements can be provided in a nested sub query.
Q) get the third max sal from emp table.
select max( sal) from emp where sal <(select max( sal) from emp where sal <(select max( sal) from emp))
--get the third minimum sal from emp table
select min( sal) from emp where sal >(select min( sal) from emp where sal >(select min( sal) from emp))
It is a select statement containing different select statements at different places.
Q) List out the employees who are having salary less than the max salary and also havinghiredate greater than the hiredate of an employee who is having the max salary.
[please check for a syntactical error!]
select empid, ename, sal, hiredate from emp where sal < (select max( sal) from emp) and hiredate > (select hiredate from emp where sal = (select max( sal) from emp)))
In a correlated sub query, the inner query will be executed for each record of the parent table.
Steps:
1) A record value from parent table will be passed to the inner query.
2) The inner query execution will be done based on that value
3) The result of the inner query will be sent back to the parent statement
4) The parent query execution will be completed for that record value.
Q) Get the 4th max sal from the emp table.
select max( sal) from emp where sal <(select max( sal) from emp where sal <(select max( sal) from emp where sal < (select max( sal) from emp)))
--5th maxsal
select a. empid , a. ename , a. sal from emp a where 4 = (select count( distinct( b. sal )) from emp b where a. sal < b. sal )
--6th maxsal
select a. empid , a. ename , a. sal from emp a where 5 = (select count( distinct( b. sal )) from emp b where a. sal < b. sal )
--nth max sal
select a. empid , a. ename , a. sal from emp a where n-1 = (select count( distinct( b. sal )) from emp b where a. sal < b. sal )
1. Simple sub query
2. Nested sub query
3. Multiple sub query
4. Correlated sub query
1. Simple sub query:
It is selected statement containing only one other select statement.
Q) --Get the second max sal from emp table.
--Get the second minimum
2. Nested Sub queries:
It is a select statement containing another select statement which contains another select statement and so on....
A max of 32 select statements can be provided in a nested sub query.
Q) get the third max sal from emp table.
--
3. Multiple sub query:
It is a select statement containing different select statements at different places.
Q) List out the employees who are having salary less than the max salary and also having
[
4. Correlated Sub query:
In a correlated sub query, the inner query will be executed for each record of the parent table.
Steps:
1) A record value from parent table will be passed to the inner query.
2) The inner query execution will be done based on that value
3) The result of the inner query will be sent back to the parent statement
4) The parent query execution will be completed for that record value.
Q) Get the 4
--5th max
--6th max
--
No comments:
Post a Comment