比较Oracle SQL中的空值

时间:2011-06-27 03:09:51

标签: sql oracle null

如果两个值相等,如果它们可以是除以下值之外的空值,是否有更好的比较方法?

a = b or (a is null and b is null)

3 个答案:

答案 0 :(得分:5)

你可以:

a=b or coalesce(a,b) is null

您也可以使用nvl,但这是遗留函数,coalesce更快,因为它在第一个非空

时停止

答案 1 :(得分:4)

您可以使用DECODE(A,B,1) = 1

DECODE在处理NULL时是不规则的。

但是我觉得目的不明确,更喜欢vol7ron的回答。清晰地减少打字!

答案 2 :(得分:0)

您可以使用nvl将其包装并将其设置为您的集合中未预期的某个值:

NVL(a,0) = NVL(b,0)