在Sql Server 2008中,我尝试了此查询,但未得到任何结果.请告诉Soution为什么我没有得到结果

问题描述:

CREATE TABLE #A(ID INT,NAME VARCHAR(10))
INSERT INTO #A VALUES(1,'ABC')
INSERT INTO #A VALUES(2,'XYZ')
INSERT INTO #A VALUES(3,'mnc')





CREATE TABLE #B(ID INT,NAME VARCHAR(10))
INSERT INTO #B VALUES(null,'ABC')
INSERT INTO #B VALUES(2,'XYZ')
INSERT INTO #B VALUES(3,'mnc')







Select * from #A where ID not in (select ID from #B)



在此我没有任何结果.
实际结果是"1,ABC",但是我没有得到结果.



In This I am not getting any result.
Actually the result Came is "1,ABC" But I am not getting result

CREATE TABLE #A(ID INT,NAME VARCHAR(10))
INSERT INTO #A VALUES(1,'ABC')
INSERT INTO #A VALUES(2,'XYZ')
INSERT INTO #A VALUES(3,'mnc')
 
CREATE TABLE #B(ID INT,NAME VARCHAR(10))
INSERT INTO #B VALUES(null,'ABC')
INSERT INTO #B VALUES(2,'XYZ')
INSERT INTO #B VALUES(3,'mnc')
 
Select * from #A where ID not in (select ID from #B WHERE ID IS NOT NULL)

DROP TABLE #A
DROP TABLE #B


嗨. .

U可以将join用于上面的一个.


Hi...

U can use join for the above one.


select  #A.ID,#A.NAME   from #A left  join #B 
on #A.ID=#B.ID where #B.ID is null


Select * from #A where  Id not in (select isnull(ID,0) from #B )






or

Select * from #A where  Id not in (select Id from #B where ID is not null )