写0不行啊,,,0是有数据的意思了 TO:zhangandli你看这样写,不好用的。BEGIN IF NVL(NULL,'') = NVL(NULL,'') THEN dbms_output.put_line('YES'); ELSE dbms_output.put_line('NO'); END IF; END;
是的,oracle就是这样处理null的。 请参考http://blog.csdn.net/fw0124/article/details/6210730如果需要a,b都是null的时候判断相等,可以这样 a is null and b is null
总之一句话,,除了IS NULL、IS NOT NULL以外,对NULL的任何操作的结果还是NULL。 对于NULL的情况,单独考虑就是了。
总之一句话,,除了IS NULL、IS NOT NULL以外,对NULL的任何操作的结果还是NULL。 对于NULL的情况,单独考虑就是了。
你可以nvl(A,'0') = NVL(B,'0'). ''这个也是空
谢谢大家热心回帖哈。 找到了一个function能够实现等于和不等于的判断,跟大家共有下。FUNCTION ISEQUAL ( VAR1 IN VARCHAR2, VAR2 IN VARCHAR2 ) RETURN NUMBER IS BEGIN IF (VAR1 IS NULL AND VAR2 IS NULL OR VAR1 IS NOT NULL AND VAR2 IS NOT NULL AND VAR1 = VAR2) THEN RETURN 1; ELSE RETURN 0; END IF; END ISEQUAL;
nvl(字段A,0) = nvl(字段B,0)
貌似NULL和''的效果是一样的啊。。
TO:zhangandli你看这样写,不好用的。BEGIN
IF NVL(NULL,'') = NVL(NULL,'') THEN
dbms_output.put_line('YES');
ELSE
dbms_output.put_line('NO');
END IF;
END;
请参考http://blog.csdn.net/fw0124/article/details/6210730如果需要a,b都是null的时候判断相等,可以这样
a is null and b is null
对于NULL的情况,单独考虑就是了。
对于NULL的情况,单独考虑就是了。
找到了一个function能够实现等于和不等于的判断,跟大家共有下。FUNCTION ISEQUAL
(
VAR1 IN VARCHAR2,
VAR2 IN VARCHAR2
)
RETURN NUMBER IS
BEGIN
IF (VAR1 IS NULL AND VAR2 IS NULL OR VAR1 IS NOT NULL AND VAR2 IS NOT NULL AND VAR1 = VAR2) THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END ISEQUAL;