Oracle SQL左侧和右侧外部联接,带/不带where子句,提供不同的输出

Oracle SQL左侧和右侧外部联接,带/不带where子句,提供不同的输出,oracle,join,where,Oracle,Join,Where,为什么以下查询的输出有差异 根据我的理解,它应该为前3个查询提供相同的输出,并为后3个查询提供相同的输出 select count(*) from CTM_People a left outer join user_x b on a.remedy_login_id = b.login_name; 结果1:152771 select count(*) from CTM_People a left outer join user_x b on a.remedy_logi

为什么以下查询的输出有差异

根据我的理解,它应该为前3个查询提供相同的输出,并为后3个查询提供相同的输出

select count(*) 
from CTM_People a left outer join user_x b 
     on a.remedy_login_id = b.login_name;
结果1:152771

select count(*) 
from CTM_People a left outer join user_x b 
     on a.remedy_login_id = b.login_name 
where a.remedy_login_id like '%';
select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name;
结果2:151185

select count(*) 
from CTM_People a left outer join user_x b 
     on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果3:152771

select count(*) 
from CTM_People a left outer join user_x b 
     on a.remedy_login_id = b.login_name 
where a.remedy_login_id like '%';
select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name;
结果1:150899

select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果2:150889

select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
结果3:150899

select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name where a.remedy_login_id like '%';
select count(*) 
from CTM_People a right outer join user_x b 
     on a.remedy_login_id = b.login_name and a.remedy_login_id like '%';
两个表中的总计数均为

select count(*) from CTM_People; **Result : 152771**
select count(*) from user_x; **Result : 150899**

LIKE运算符不接受空值。请检查a.rememy\u login\u id

LIKE运算符不接受空值。在.remedy\u login\u id中是否有空值?如果您使用的是Oracle,请调整您的标记并删除MySQL和SQL Server。可能有提到的@DavidP之类的空值,第三个不受影响,因为“%”是外部联接条件,另一个区别取决于外部联接的表。谢谢David和James。我得到了它。CTM_People表实际上有1586个空值。我添加了我以前的注释作为答案,这样你们就可以接受或者其他什么了。