`
EdgenHuang
  • 浏览: 107505 次
  • 性别: Icon_minigender_1
  • 来自: 福建泉州
社区版块
存档分类
最新评论

oracle 的 null 和 空字符串('')

    博客分类:
  • DB
阅读更多

-- oracle 将 空字符串即''当成null,测试脚本如下:

 

select nvl(null,-1) from dual;
select nvl('','-1') from dual;
select nvl(nvl(null,''),-1) from dual;

select nvl(trim('  '),'-1') from dual;

 

-- 但是要记住,null 与任何值做逻辑运算得结果都为 false,包括和null本身:

 

select nvl(max('1'),-1) from dual where null = '';
select nvl(max('1'),-1) from dual where null <> '';
select nvl(max('1'),-1) from dual where null = '-1';
select nvl(max('1'),-1) from dual where null <> '-1';

select nvl(max('1'),-1) from dual where null = null;
select nvl(max('1'),-1) from dual where null <> null;

 

-- 不过,用 is null 判断时,空字符串和 null 都 is null:

 

select nvl(max('1'),-1) from dual where '' is null;
select nvl(max('1'),-1) from dual where null is null;

 

--------------------------------------------------------------------------------------------------

 

-- 还要记住,null 和任何数值进行数学运算,结果都为 null:

 

select nvl(null + 0,-1) from dual;

 

-- 不过,可以使用 || 将空字符串或 null 和字符串连接

 

select 'a' || null || 'b' from dual; 

 

--------------------------------------------------------------------------------------------------

 

-- 另,作为以下的 Oracle 内置的函数的参数时,结果也为 null:
select nvl(length(null),-1) from dual;

select nvl(trim(null),-1) from dual;

select nvl(ltrim(null),'-1') from dual;
select nvl(rtrim(null),'-1') from dual;
select nvl(rtrim(null,' '),'-1') from dual;

select nvl(soundex(null),'-1') from dual;

select nvl(SubStr(null,1),-1) from dual;

select nvl(InStr(null,1),-1) from dual;

select nvl(replace(null,'a','b'),'-1') from dual;

 

select nvl(min(null),'-1') from dual;
select nvl(max(null),'-1') from dual;
select nvl(sum(null),'-1') from dual;
select nvl(avg(null),'-1') from dual;
select nvl(sum(null),'-1') from dual;

 

 

-- 不过,作为以下的 Oracle 内置的函数的参数时,结果不为null:

select concat('a', null) from dual;
select concat(null, 'a') from dual;


select count(null) from dual;

 

-- 其他函数用的时候,也可以使用以上的方法测试

 

 

分享到:
评论

相关推荐

    Oracle null的使用

    介绍oracle开发中关于null的特征、易出问题地方及其解决办法,对于从事oracle开发的成员很有帮助,也可用于培训。

    Oracle 基础语句 函数大全(字符串函数

    ORACLE PL/SQL 字符串函数、数学函数、日期函数 --【字符串函数】 --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符...

    Oracle数据库中对null值的排序及mull与空字符串的区别

    主要介绍了Oracle数据库中对Null值的排序及Null与空字符串的区别,讲解了在order by排序中如何定义null值项的位置及其与字符串' '的不同,需要的朋友可以参考下

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    NULL 博文链接:https://czjxdm.iteye.com/blog/466948

    习惯了oracle10g写法的朋友们注意了,oralce11g有变化了,小谈空字符串与null的区别

    这是因为oracle中字段时空字符串等同与null,也就是nvl(字段,‘’)也是null,不会得到‘’,所以这个条件在oracle11g上永远是不成立的。 但是要特别注意的是字段时空字符串与null在where条件时不相同,不信可以测试...

    Oracle中字符串连接的实现方法

    和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。 比如执行下面的SQL语句: 代码如下:SELECT ‘工号为’||FNumber||’的员工姓名为’||FName FROM T_...

    常用oracle字符串操作函数

    NULL 博文链接:https://hbiao68.iteye.com/blog/1538242

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    主要介绍了mybatis使用char类型字段查询oracle数据库时结果返回null问题的解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    字符串(汉字)长度判断

    针对Oracle数据库中汉字在不通的字符集下所占字符长度不通,在保存时可能需要对源字符串的长度进行判断。 实现过程如下 /** * 针对汉字 进行计算长度 * @param string 计算的字符串 * @param ...

    oracle使用instr或like方法判断是否包含字符串

    首先想到的就是contains,contains用法如下: select * from students where contains(address, 'beijing') 但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    oracle面试题

    对字符串操作的函数 答:ASCII 函数返回字符表达式最左端字符的ASCII 码值 CHR 函数用于将ASCII 码转换为字符 如果没有输入0 255 之间的ASCII 码值CHR 函数会返回一个 NULL 值 应该是必须给chr 赋数字值 concat ...

    MYSQL_MSS_ORACLE函数使用

    MYSQL_MSS_ORACLE函数使如果结果的长度大于服务器参数max_allowed_packet,字符串值函数返回NULL. 对于针对字符串位置的操作,第一个位置被标记为1. 1、ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果...

    Oracle P/L SQL实现文件压缩、解压功能

    Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...

    Oracle课件.pdf

    5.3字符串连接操作符(||) 6. 高级查询 6.1 DISTINCT操作 6.2 NULL操作 6.3 IN 操作 6.4 BETWEEN…AND… 6.5 LIKE模糊查询 6.6 集合运算 6.7 连接查询 第3章 子查询和常用函数 1. 子查询 2. Oracle中的...

    MYSQL_MSS_ORACLE函数

    如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql&gt; select ASCII('2'); -&gt; 50 mysql&gt; select ASCII(2); -&gt; 50 mysql&gt; select ASCII('dx'); -&gt; 100也可参见ORD()函数. 2、ORD(str) 如果字符串str最...

    Oracle8i_9i数据库基础

    §1.5.5 Change(替换字符串)命令 34 §1.5.6 Append(追加字符串)命令 34 §1.5.7 Save保存当前缓冲区命令到文件 35 §1.5.8 GET将命令文件读到缓冲区 35 §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前...

    spring-jpa-oracle:演示将 CHAR 列持久化到 Oracle 数据库

    如果查询INSERT INTO CITY (..., NAME, ...) VALUES (..., 'Manchester', ...)被执行,则数据库将字符串Manchester为 40 个字符,然后将其存储在NAME柱子。 稍后,如果查询SELECT * FROM CITY WHERE NAME = '...

Global site tag (gtag.js) - Google Analytics