1,在oracle中凡是null参与的任何的比较(使用“<>,=”的比较),得到结果都是“false”.
关于变量是否是NULL的判断,必须用“IS NULL”,“NOT IS NULL”
2,在oracle中‘’和null是等价的,参看下面的图
测试数据: | v_TestData1 varchar(8) := '065417' | ||
v_TestData2 varchar(8) := '' | |||
数据1 | 比较符 | 数据2 | 结果 |
null | <> | v_TestData1 | FALSE |
= | FALSE | ||
null | <> | null | FALSE |
= | FALSE | ||
null | = | v_TestData2 | FALSE |
<> | FALSE | ||
v_TestData2 | is | null | TRUE |
3,sql语句和Plsql中如果要判断不等的,一定要把null的情况要考虑进去。
例1:检索,companyNm是sony以外的人
select * from t_amployer where companyNm != 'sony' or companyNm is null;
例2:plsql中,userId不是065417时,就退出;
if userid != '065417' or userId is null then
return;
end if;