Translate

Tuesday 2 December 2014

WCF Tutorial and Interview Question & Answers

List all employee's names and their managers by manager name using an inner join

select distinct e.Ename as Employee, m.ManagerID as reports_to, m.Ename as Manager
from EMPLOYEES e
inner join Employees m on e.ManagerID = m.EmpID;

EXCEPT vs NOT IN and INTERSECT vs IN in SQL SERVER:

"EXCEPT" operator was introduced in SQL SERVER 2005. This operator used to achieve Distinct and Not Inqueries. EXCEPT operator returns all distinct rows from left hand side table which does not exist in right hand side table.
On the other hand, "NOT IN" will return all rows from left hand side table which are not present in right hand side table but it will not remove duplicate rows from the result.

create table #tblsample (ProductId tinyint)
create table #tblsample2 (ProductId tinyint)

--insert values to tbl 1
insert into #tblsample values (1)
insert into #tblsample values (2)
insert into #tblsample values (3)
insert into #tblsample values (4)

--insert values to tbl 2
insert into #tblsample2 values (1)

--SELECT
select * from #tblsample
select * from #tblsample2

--USE EXCEPT
select * from #tblsample
except
--intersect
select * from #tblsample2

--USE NOT IN
select * from #tblsample
where productid NOT IN(
select * from #tblsample2)
-------------------------------------------
-- INSERT DUBLICATE VALUE
insert into #tblsample values (1)
insert into #tblsample values (2)

--SELECT
select * from #tblsample
--USE EXCEPT
PRINT 'EXCEPT RETURNS DISTINCT VALUES'
select * from #tblsample 
except
--intersect
 select * from #tblsample2
--USE NOT IN
PRINT 'NOT IN RETURNS DUPLICATE VALUES IF ANY'
select * from #tblsample where productid NOT IN(select * from #tblsample2)

--USE DISTINCT + NOT IN = EXCEPT

select * from #tblsample
except
select productid from #tblsample2