Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3909892
  • 博文数量: 537
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4830
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(537)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(253)

2006年(73)

分类: Oracle

2007-01-26 10:33:53

x     y     x AND y x OR y     NOT x
---------------------------------------
TRUE     TRUE     TRUE     TRUE     FALSE
TRUE     FALSE     FALSE     TRUE     FALSE
TRUE     NULL     NULL     TRUE     FALSE
FALSE     TRUE     FALSE     TRUE     TRUE
FALSE     FALSE     FALSE     FALSE     TRUE
FALSE     NULL     FALSE     NULL     TRUE
NULL     TRUE     NULL     TRUE     NULL
NULL     FALSE     FALSE     NULL     NULL
NULL     NULL     NULL     NULL     NULL

感觉NULL好象是介于TRUE与FALSE之间的一个常数似的。

NULL ---> “NOT NULL” 也为 NULL。  空还是空。

还有NULL = NULL 是不对的,只可以说NULL IS NULL。
感觉蛮复杂的,Oracle中的NULL太特殊了。

eg:
DECLARE
x NUMBER := 5;
y NUMBER := NULL;
BEGIN
IF x != y THEN -- yields NULL, not TRUE
DBMS_OUTPUT.PUT_LINE('x != y'); -- not executed
ELSIF x = y THEN -- also yields NULL
DBMS_OUTPUT.PUT_LINE('x = y');
ELSE
DBMS_OUTPUT.PUT_LINE('Can''t tell if x and y are equal or not.');
END IF;
END;
输出结果为:Can't tell ...
把5改为NULL输出结果还是那样。

阅读(882) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~