我正在使用一个数据仓库表,该表可以拆分为声明的行和计算的行。我怀疑计算的行是声明行的完美副本(声明/计算列除外)。
我尝试使用 except 子句对此进行测试:
但是所有的记录都被退回了。我不相信这是可能的,我怀疑这是由于空值。
有没有办法比较将空值与空值进行比较的记录?
SELECT a, b, c FROM table WHERE clm_cmp_cd = 'clm'
EXCEPT
SELECT a, b, c FROM table WHERE clm_cmp_cd = 'cmp'
但是所有的记录都被退回了。我不相信这是可能的,我怀疑这是由于空值。
有没有办法比较将空值与空值进行比较的记录?
编辑:该解决方案应该适用于具有不同类型的任意数量的字段。在这种情况下,我有大约 100 个字段,其中 2/3 可能有空值。这是一个数据仓库,必须预料到一定程度的非规范化。
编辑:我测试了查询,同时将自己限制在非空列,我得到了我期望的结果(什么都没有)。但是,我仍然想比较可能包含空值的字段。