先容Oracle中null的运用要领。

51 本源:网海拾贝




问:什么是NULL?
答:在我们不晓得详细有什么数据的时分,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。
ORACLE许可任何一种数据范例的字段为空,除了以下两种气象:
1、主键字段(primary key),
2、界说时已经加了NOT NULL限制条件的字段
阐明:
1、等价于没有任何值、是未知数。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操纵,后果仍为空。
4、NULL的处理运用NVL函数。
5、比较时运用要害字用“is null”和“is not null”。
6、空值不能被索引,所以盘问时有些相符条件的数据大概查不出来,count(*)中,用nvl(列名,0)处理后再查。
7、排序时比其他数据都大大(索引默许是降序排列,小→大大),所以NULL值老是排在末了。
运用要领:
SQL> select 1 from dual where null=null;
没有查到记载
SQL> select 1 from dual where null='';
没有查到记载
SQL> select 1 from dual where ''='';
没有查到记载
SQL> select 1 from dual where null is null;1
---------1
SQL> select 1 from dual where nvl(null,0)=nvl(null,0);1
---------1
对空值做加、减、乘、除等运算操纵,后果仍为空。
SQL> select 1 null from dual;
SQL> select 1-null from dual;
SQL> select 1*null from dual;
SQL> select 1/null from dual;
盘问到一个记载.
注:这个记载即是SQL语句中的阿谁null
设置某些列为空值
update table1 set 列1=NULL where 列1 is not null;
现有一个商品销售表sale,表结构为:
month  char(6)  --月份
sellnumber(10,2) --月销售金额
create table sale (month char(6),sell number);
insert into sale values('200001',1000);
insert into sale values('200002',1100);
insert into sale values('200003',1200);
insert into sale values('200004',1300);
insert into sale values('200005',1400);
insert into sale values('200006',1500);
insert into sale values('200007',1600);
insert into sale values('200101',1100);
insert into sale values('200202',1200);
insert into sale values('200301',1300);
insert into sale values('200008',1000);
insert into sale(month) values('200009');(留意:这笔记载的sell值为空)
commit;
共输入12笔记载
SQL> select * from sale where sell like '%';
MONTH       SELL
------ ---------
200001      1000
200002      1100
200003      1200
200004      1300
200005      1400
200006      1500
200007      1600
200101      1100
200202      1200
200301      1300
200008      1000
盘问到11记载.
后果阐明:
盘问后果阐明此SQL语句盘问不出列值为NULL的字段
此时需对字段为NULL的气象另外处理。
SQL> select * from sale where sell like '%' or sell is null;
SQL> select * from sale where nvl(sell,0) like '%';
MONTH       SELL
------ ---------
200001      1000
200002      1100
200003      1200
200004      1300
200005      1400
200006      1500
200007      1600
200101      1100
200202      1200
200301      1300
200008      1000
200009
盘问到12记载.
Oracle的空值即是这么的用法,我们最好认识它的商定,以防查出的后果不准确




版权声明: 原创作品,许可转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。不然将追查规律责任。

转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1976339.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wince6 Eboot中加入开机画面

昨天研究了一下wince开机时加入个性化的画面,折腾了一上午,不是花屏就是CE起不来……终于搞定,分享一下经验吧。。。 Wince加入开机画面方法一般有以下两种: 1、 在文件中下定义一个常量大数组,几百K,如con…

hive 窗口函数_Datatist科技专栏 | Hive排序窗口函数速学教程!

作者:原上野设计:Cindy编辑:AI君在开发过程中经常会遇见排序的场景,比如取top N的问题,这时候row_number(),rank,dense_ran()这三个函数就派上用场了,其中,row_number()最为常用。虽然都可以排序…

arcgis利用python赋值

、 rec0 def autoIncrement(): global rec pStart 1 pInterval 1 if (rec 0): rec pStart else: rec rec pInterval return rec

人生九度

1.工作方面,能力不敌态度; 2.事业方面,才华不敌韧度; 3.知识方面,广博不敌深度; 4.思想方面,敏锐不敌高度; 5.做人方面,精明不敌气度; 6.做事方面&#xff0c…

platform Builder导出SDK

一、编译好wince系统 二、选择[platform]->[configur SDK],第一次进入的话,会要求输入一些SDK名字等信息。完成后再一次进入才是配置SDK的属性。 三、有几项需要注意的: CPU选项:若是输出仿真器的SDK,这项不要选入…

idea修改代码后没有重新编译_SpringBoot中实现代码修改之后的自动更新与热加载...

在实际的开发过程中,我们经常修改代码之后,手动的重启项目,查看修改效果。那么有没有一种方式能够快速的、自动的帮我们将修改代码自动更新,避免手动重启,从而提高开发效率呢?是有的,对于这个功…

android 从assets和res中读取文件(转)

1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html&#xff0c…

WINCE6开机进度条

大致思路,在NBoot或EBoot加开机进度条,由于WINCE启动主要时间都花在读取NK,因此每读取一定的页,就在屏上画一条固定高度的线,并记录画线的位置,下次接着画,直到读取完NK,这样就产生的…

电脑查看wifi密码

右键 打开“网络。。。。。。”

软件oem要注意什么_做化妆品oem,选择化妆品包材要注意什么问题

化妆品企业找厂家做oem,一般厂家都是负责设计研发生产的,但是设计出来的产品包材,就需要找其它的包材厂家去采购了,很多没有经验的品牌商都不清楚找包材要怎么找,好看质量好就可以了吗?韵丽生物科技化妆品代…

等高线转dem

可以自行设置分辨率

ARM指令 LDR 和 ADR的一些区别

LDR 是ARM中的指令,也是伪指令。 当用 LDR r, imd // r 为寄存器, imd为立即数 LDR 是一条伪指令。编译器会根据 立即数的大小,决定用 ldr 指令或者是mov或mvn指令。 当imd能用mov或者mvn操作时,就将它翻译成一条mov或mvn指令。当…

阻塞 cpu占用

请问,windowsxp系统下,有一个线程A,此线程中需要wait一个信号,我有以下观点,请大家帮我判断一下我的观点对不对,谢谢!如果我用阻塞方式,则一旦轮到这个线程执行,os只要发…

登录验证应该是进行在客户端还是服务器端_网站登录认证方式

目前大部分软件系统资源访问都是使用HTTP协议,HTTP是无状态的协议,每次请求默认都是相互独立的。但是大部分情况下我们需要记录请求资源的用户信息,也就是保存会话,从而对资源的访问做限制,这是我们认证功能。常用的认…

arcgis将点的属性赋值给面

例子:将点的编号属性列赋值到对应的面属性

关于application title一直是untitled的问题

建立了一个cocoaapplication项目,在Interface Builder中修改了title,在运行时标题始终是“Untitled”。这是我在http://stackoverflow.com/questions/4720030/cocoa-mac-application-title-says-untitled上找的解决方法。I have created a document base…

python 中文apichm_python api 中文 chm

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

arcgis投影数据计算度分秒

原始数据投影坐标系 1.先将图层坐标改为地理坐标系 2.添加字段必须是文本类型,否则计算不出度分秒的形式,只显示十进制 错误示例(字段类型为双精度) 正确示例(字段类型为文本类型)

Js实现异步刷新(原创)

看了ajax的一些资料,稍微学到了一点东西,于是写出来与大家分享,由于读的资料比较少和自己的看法可能不全面,再加上自己的拙笔,如果不小心写错,还请大家 谅解 一.ajax理论叙述 ajax并不是一个新技术&#xf…