【ORACLE】特殊的NULL

NULL 是数据库中特有的数据类型


Oracle 中对空的描述

null
Absence of a value in a column of a row. Nulls indicate missing, unknown, or inapplicable data.


当一条记录的某个列为 NULL ,则表示这个列的值是未知的、是不确定的既然是未知的,就有无数种的可能性。

因此, NULL 并不是一个确定的值

-- 判断一个列为空

SELECT * FROM CUSTOMEREN C WHERE C.MODIFYDT IS NULL;

-- 判断一个列非空

SELECT * FROM CUSTOMEREN C WHERE C.MODIFYDT IS NOT NULL;


测试:

--NULL=NULL么: NULL is not equal to NULL

SELECT CASE

WHEN NULL = NULL THEN

‘NULL is equal to NULL‘

ELSE

‘NULL is not equal to NULL‘

END "NULL=NULL?"

FROM DUAL;

--空串=NULL么 :空串 is not equal to NULL

SELECT CASE

WHEN ‘‘ = NULL THEN

‘空串 is equal to NULL‘

ELSE

‘空串 is not equal to NULL‘

END "空串=NULL?"

FROM DUAL;

--空格=NULL么: 空格 is not equal to NULL

SELECT CASE

WHEN ‘ ‘ = NULL THEN

‘空格 is equal to NULL‘

ELSE

‘空格 is not equal to NULL‘

END "空格=NULL?"

FROM DUAL;

--‘‘ 是NULL么: ‘‘ is NULL

SELECT CASE

WHEN ‘‘ IS NULL THEN

‘‘‘‘‘ is NULL‘

ELSE

‘‘‘‘‘ is not NULL‘

END "‘‘ is NULL?"

FROM DUAL;

--空串=空串么:‘‘ is not equal to ‘‘

SELECT CASE

WHEN ‘‘ = ‘‘ THEN

‘‘‘‘‘ is equal to ‘‘‘‘‘

ELSE

‘‘‘‘‘ is not equal to ‘‘‘‘‘

END "‘‘‘‘=‘‘‘‘?"

FROM DUAL;

-- 将null替换成一个值

select 1 from dual where nvl(null,0)=nvl(null,0);


NULL 排序问题

方法 1  将null替换成一个值 ,是用nvl 函数

select 1 from dual where nvl(null,0)=nvl(null,0);

方法2 是用NULLS LAST,NULLS FIRST处理 

SELECT c.modifydt FROM customeren c ORDER BY c.modifydt NULLS LAST;

SELECT c.modifydt FROM customeren c ORDER BY c.modifydt NULLS FIRST;

时间: 2024-10-29 19:07:25

【ORACLE】特殊的NULL的相关文章

oracle 中的null与''

1.先看看Null与''在oracle中的表现 C:\Users\zen>sqlplus hr/hr SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 31 10:30:32 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64

【转】Oracle索引列NULL值引发执行计划该表的测试示例

有时开发进行表结构设计,对表字段是否为空过于随意,出现诸如id1=id2,如果允许字段为空,因为Oracle中空值并不等于空值,有可能得到意料之外的结果.除此之外,最关键的是,NULL会影响oracle的执行计划. 以下为NULL影响执行计划的测试示例. /*1.构建test表,其中create table方式建立的test表结构object_id非空*,走索引/ SELECT Count(*) FROM all_objects WHERE object_id IS NOT NULL; --41

oracle 的对于null的统计

在对有null值的字段进行count时,发现count(1)与count(字段)得到的记录不一样. 结论:1.count(1)与count(*)得到的结果一致,包含null值.      2.count(字段)不计算null值      3.count(null)结果恒为0 SQL> select * from  v$version; BANNER---------------------------------------------------------------------------

oracle加入not null约束

在创建表时.为列加入not null约束,形式例如以下: column_name data_type [constraint constraint_name] not null 当中,constraint constraint_name 表示为约束指定名称. 也能够为已创建的表中加入not null约束,这时就须要使用alter table... modify语句.形式例如以下: alter table table_name modify column_name [constraint cons

Oracle中的null

1. 包含null的表达式都为null 2. null永远!= null select  * from emp where comm=null     // error select  *   from emp where comm is null 3. nvl(filedName,0)         // 如果为空值时替换成另一个值(  nvl2 )

oracle添加not null约束

在创建表时,为列添加not null约束,形式如下: column_name data_type [constraint constraint_name] not null 其中,constraint constraint_name 表示为约束指定名称. 也可以为已创建的表中添加not null约束,这时就需要使用alter table... modify语句,形式如下: alter table table_name modify column_name [constraint constrai

Oracle SQL篇(一)null值之初体验

    从我第一次正式的写sql语句到现在,已经超过10年的时间了.我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解.这条路,一走就是10年,从充满热情,到开始厌倦,我不知道我还能坚持多久,未来的路,谁知道呢? 也许是该抓紧时间,做一点什么了,我不知道该开始写些什么,我从来没有在网上写东西的习惯.     先从简单的开始吧,那当然就是SQL,这是我SQL系列的第一篇,希望我能够坚持. 在Oracle数据库中,如果一个表中的列没有值的话,我们可以说是空值,比如IT员

Oracle使用order by排序关于null值处理

在Oracle中使用order by进行查询排序时,如果排序字段中有空值(null),排序结果可能会达不到我们想要的结果.如: select * from test order by age desc; 按照age字段降序排序,结果如下: 将sql语句改为 select * from test order by age desc nulls last; 即可将null值排到最后."nulls last"将空值放在后面,相反的"nulls first"将空值记录放在前

Oracle Net Services 配置: Error: null Oracle Net Services 配置失败。退出代码是1

具体错误描述: [[email protected] ~]$ netca /silent/responseFile /usr/local/soft/oracel/netca.rsp 正在对命令行参数进行语法分析: 传递的错误命令行参数:"silent/responsefile" 传递的错误命令行参数:"usr/local/soft/oracel/netca.rsp" 完成对命令行参数进行语法分析. Oracle Net Services 配置: Error: nul

转载:oracle null处理

(1)NULL的基础概念,NULL的操作的基本特点NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此,NULL并不是一个确定的值.这是NULL的由来.也是NULL的基础,所有和NULL相关的操作的结果都可以从NULL的概念推导出来.判断一个字段是否为NULL,应该用IS NULL或IS NOT NULL,而不能用‘=’.对NULL的判断只能定性,既是不是NULL(IS NULL/IS NOT NULL),而