如何在以下查询中检查空值?维护不是问题。查询正在自动运行以检查是否进行了数据库更改。
SELECT COUNT(*) FROM MSG_TYP_LKUP
WHERE ((MSG_TYP,NM,SUB_TYP,DIRECT,FORMAT) IN
(
('setr.005','Cancel to Fund',NULL,'OUT','SWIFT-XML'),
('setr.011','Cancel to Fund',NULL,'OUT','SWIFT-XML'),
('setr.013','Order to Fund',NULL,'OUT','SWIFT-XML'),
('setr.014','Cancel to Fund',NULL,'OUT','SWIFT-XML'),
('setr.016','Order Received','RECE','OUT','SWIFT-XML'),
('setr.016','Order Acknowledgement','STNP','OUT','SWIFT-XML')
)
);
最佳答案
最简单的方法可能是为 NULL
插入一个新值。 .像这样的东西:
SELECT COUNT(*)
FROM MSG_TYP_LKUP
WHERE ((MSG_TYP, NM, COALESCE(SUB_TYP, '<NULL>'), DIRECT, FORMAT) IN
(
('setr.005','Cancel to Fund', '<NULL>','OUT','SWIFT-XML'),
('setr.011','Cancel to Fund', '<NULL>','OUT','SWIFT-XML'),
('setr.013','Order to Fund', '<NULL>','OUT','SWIFT-XML'),
('setr.014','Cancel to Fund', '<NULL>','OUT','SWIFT-XML'),
('setr.016','Order Received','RECE','OUT','SWIFT-XML'),
('setr.016','Order Acknowledgement','STNP','OUT','SWIFT-XML')
)
);
我对这种方法并不感到兴奋。但是 Oracle 没有 NULL
-safe 比较运算符,所以这可能是最简单的方法。
关于sql - 与 Oracle 11g 中元组中的 null 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66547920/