代码改变世界

postgresql中null对!=的影响

2020-09-07 22:23  abce  阅读(881)  评论(0编辑  收藏  举报

今天开发问我,为什么!=操作不能获取值为null记录:

abce=# select id,
abce-#         a_no,
abce-#         a_code,
abce-#         a_number,
abce-#         date_receive,
abce-#         bank_a,
abce-#         status
abce-# from
abce-#         erp_a_examine 
abce-# where
abce-#         ( a_number = '1023' and a_code = '231174' and status != '已作废' );
 id  | a_no | a_code | a_number | date_receive | bank_a | status 
-----+------+--------+----------+--------------+--------+--------
(0 rows)

abce=# select id,
abce-#         a_no,
abce-#         a_code,
abce-#         a_number,
abce-#         date_receive,
abce-#         bank_a,
abce-#         status
abce-# from
abce-#         erp_a_examine 
abce-# where
abce-#         ( a_number = '1023' and a_code = '231174' );
 id  | a_no | a_code | a_number | date_receive | bank_a | status 
-----+------+--------+----------+--------------+--------+--------
 333 | 1023 | 231174 | 12155    | 2010-03-02   |        | 
(1 row)

abce=# 

  

只是因为null是非safe的操作。