楼主: jlandzpa

[精华] [转载]漫谈oracle中的空值

[复制链接]
论坛徽章:
4
ITPUB元老
日期:2007-04-19 13:22:13ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
21#
发表于 2005-6-17 14:01 | 只看该作者
挺好的,謝謝了

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
22#
发表于 2005-6-17 17:11 | 只看该作者
好文,支持!

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
23#
发表于 2005-10-13 15:06 | 只看该作者
最初由 hmxxyy 发布
[B]严格地说

NULL AND TRUE -> UNKNOWN [/B]


呵呵,在我的理解中
NULL实际上就是UNKNOWN

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
24#
发表于 2005-10-14 10:25 | 只看该作者
发现一个问题,文中说NOT NULL的结果是NULL,可实际测试结果并非如此
Oracle9.2.0.1,客户端sqlplus 8.1.6
测试情况如下:
[php]
SQL> select 1 from dual where NULL>1;

未选定行

SQL> select 1 from dual where NOT(NULL>1);

未选定行

SQL> select 1 from dual where NOT(NULL) is null;

未选定行

SQL> select 1 from dual where NOT(NULL) is not null;

         1
----------
         1

.
[/php]

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
25#
发表于 2005-10-14 11:21 | 只看该作者

Re: [转载]漫谈oracle中的空值

最初由 jlandzpa 发布
[B]http://www.powerba.com/develop/d ... cle/20010720001.htm

河北省统计局    贾书民
…………………………

2. 空值的特点

空值具有以下特点:

* 等价于没有任何值。
* 与 0、空字符串或空格不同。
* 在where条件中, Oracle认为结果为NULL的条件为FALSE,带有这样条件的select语句不返回行,并且不返回错误信息。但NULL和FALSE是不同的。
* 排序时比其他数据都大。[/COLOR]
* 空值不能被索引。

[/B]


在order by 语句中,可以用NULL LAST或者NULL FIRST来指定NULL值出现的位置,而NULL LAST是默认值。以下是Oracle文档中的说明:
NULLS FIRST | NULLS LAST
specifies whether returned rows containing null values should appear
first or last in the ordering sequence.
NULLS LAST is the default for ascending order, and NULLS FIRST is the
default for descending order.

使用道具 举报

回复
论坛徽章:
7
数据库板块每日发贴之星
日期:2005-03-27 01:01:21数据库板块每日发贴之星
日期:2005-05-08 01:01:23授权会员
日期:2005-11-05 17:10:38会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44喜羊羊
日期:2015-03-04 14:49:392015年新春福章
日期:2015-03-06 11:57:31
26#
发表于 2005-10-14 13:32 | 只看该作者
最初由 lastwinner 发布
[B]发现一个问题,文中说NOT NULL的结果是NULL,可实际测试结果并非如此

SQL> select 1 from dual where NOT(NULL) is null;

未选定行

SQL> select 1 from dual where NOT(NULL) is not null;

         1
----------
         1


NOT(NULL) IS NULL = NOT ((NULL) IS NULL) = NOT (NULL IS NULL) = NOT TRUE = FALSE

NOT (NULL) IS NOT NULL = NOT ((NULL) IS NOT NULL) = NOT (NULL IS NOT NULL) = NOT FALSE = TRUE

你想证明什么? NOT是优先级最低的

使用道具 举报

回复
论坛徽章:
484
ITPUB北京香山2007年会纪念徽章
日期:2007-01-24 14:35:02ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB北京2009年会纪念徽章
日期:2009-02-09 11:42:452010新春纪念徽章
日期:2010-03-01 11:04:552010数据库技术大会纪念徽章
日期:2010-05-13 10:04:272010系统架构师大会纪念
日期:2010-09-04 13:35:54ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:32ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412012新春纪念徽章
日期:2012-01-04 11:49:54
27#
发表于 2005-10-15 15:39 | 只看该作者
最初由 hmxxyy 发布
[B]

NOT(NULL) IS NULL = NOT ((NULL) IS NULL) = NOT (NULL IS NULL) = NOT TRUE = FALSE

NOT (NULL) IS NOT NULL = NOT ((NULL) IS NOT NULL) = NOT (NULL IS NOT NULL) = NOT FALSE = TRUE

你想证明什么? NOT是优先级最低的 [/B]


感谢感谢!!!
一直以为NOT优先级比IS NULL高,原来不是这样的!
昨天得出了一个NOT(NULL)不是NULL的结论
其实这两个做比较Oracle会提示出错的!
难怪昨天得出上面这个结论的时候我总觉得哪里有点不对劲
现在明白啦,非常感谢:)

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
25
生肖徽章2007版:龙
日期:2008-05-06 11:07:48咸鸭蛋
日期:2011-10-19 10:09:12ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:542013年新春福章
日期:2013-02-25 14:51:24
28#
发表于 2006-2-17 18:49 | 只看该作者
有时候空值带来的问题无法回避,需要特殊处理。

使用道具 举报

回复
论坛徽章:
0
29#
发表于 2006-2-18 11:19 | 只看该作者
Thank you!!
期待自己的提高

使用道具 举报

回复
论坛徽章:
22
世界杯纪念徽章
日期:2006-07-20 13:19:20世界杯纪念徽章
日期:2010-07-12 13:08:002010年世界杯参赛球队:乌拉圭
日期:2010-07-22 12:41:17ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222011新春纪念徽章
日期:2011-02-18 11:43:34
30#
发表于 2006-2-18 11:28 | 只看该作者
收藏!!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表