第一次采取,kludge解决方案,哨兵方法(你的程序不应该允许输入标记值):
select coalesce(a, -2147483648) = coalesce(b, -2147483648) as is_equal -- a little postgresism
假设您忘记阻止程序上的标记值,用户在B字段上输入-2147483648,A为空.上面的代码报告为true,如果报告为false,则不应报告true或null.
比较可空字段上的相等性最简洁的方法是什么?A == B应仅报告真或假,无论字段是否可为空.
可能是[NOT] DISTINCT FROM在这里会有所帮助.