Tom*_*m H 10
根据数据类型和列的可能值:
COALESCE(A, -1) <> COALESCE(B, -1)
诀窍是找到一个永远不会出现在数据中的值(这里我用-1).
另一种方式是:
(A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL)
这可能是一个问题,具体取决于您的特定RDBMS如何处理NULL.根据ANSI标准,这应该给你你想要的,但无论如何谁遵循标准.:)
PS - 我还应该指出,使用COALESCE函数可能会在比较列时使索引无效.检查查询计划和查询的性能,看看是否存在问题.
PPS - 我刚注意到OMG Ponies提到Informix不支持COALESCE.这是我认为的ANSI标准功能,但请看我上面谈到的关于标准的内容......