子查詢中的空值問(wèn)題,最后這點(diǎn)有點(diǎn)不明白
select mgr from emp where mgr is not null->得出的結(jié)果是除了king以外的全部老板,然后select * from emp where empno not in(select mgr from emp where mgr is not null)->得出的不應(yīng)該是全部非老板的員工加上king這個(gè)員工嗎?
select mgr from emp where mgr is not null->得出的結(jié)果是除了king以外的全部老板,然后select * from emp where empno not in(select mgr from emp where mgr is not null)->得出的不應(yīng)該是全部非老板的員工加上king這個(gè)員工嗎?
2019-03-24
舉報(bào)
2019-03-30
用distinct可以找到不重復(fù)記錄,
上面這條語(yǔ)句的功能可以找到所有老板。很明顯King(7839)是包括在里面的,為什么select * from emp where empno not in(select mgr from emp where mgr is not null)得到的記錄不包括King而只是全部非老板員工呢?那是因?yàn)閷?duì)比查找的時(shí)候,King這個(gè)人并沒有被排除,當(dāng)用他的empno對(duì)比上面6個(gè)數(shù)據(jù)時(shí),自然會(huì)匹配到7839(King),從而被排除。故最終結(jié)果只會(huì)輸出8個(gè)非老板員工(即全部員工剪去上面6個(gè)老板員工)。
2020-05-28
子查詢排除的是king這個(gè)員工, 但是king下面有員工, 就是說(shuō)king的員工號(hào)(deptno)已經(jīng)在mgr里面了, 所以最終查詢會(huì)排除king的員工號(hào)