-- 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开发的成员很有帮助,也可用于培训。
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值的排序及Null与空字符串的区别,讲解了在order by排序中如何定义null值项的位置及其与字符串' '的不同,需要的朋友可以参考下
NULL 博文链接:https://czjxdm.iteye.com/blog/466948
这是因为oracle中字段时空字符串等同与null,也就是nvl(字段,‘’)也是null,不会得到‘’,所以这个条件在oracle11g上永远是不成立的。 但是要特别注意的是字段时空字符串与null在where条件时不相同,不信可以测试...
和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。 比如执行下面的SQL语句: 代码如下:SELECT ‘工号为’||FNumber||’的员工姓名为’||FName FROM T_...
NULL 博文链接:https://hbiao68.iteye.com/blog/1538242
主要介绍了mybatis使用char类型字段查询oracle数据库时结果返回null问题的解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
针对Oracle数据库中汉字在不通的字符集下所占字符长度不通,在保存时可能需要对源字符串的长度进行判断。 实现过程如下 /** * 针对汉字 进行计算长度 * @param string 计算的字符串 * @param ...
首先想到的就是contains,contains用法如下: select * from students where contains(address, 'beijing') 但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列...
varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...
对字符串操作的函数 答:ASCII 函数返回字符表达式最左端字符的ASCII 码值 CHR 函数用于将ASCII 码转换为字符 如果没有输入0 255 之间的ASCII 码值CHR 函数会返回一个 NULL 值 应该是必须给chr 赋数字值 concat ...
MYSQL_MSS_ORACLE函数使如果结果的长度大于服务器参数max_allowed_packet,字符串值函数返回NULL. 对于针对字符串位置的操作,第一个位置被标记为1. 1、ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果...
Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...
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中的...
如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dx'); -> 100也可参见ORD()函数. 2、ORD(str) 如果字符串str最...
§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 再运行当前...
如果查询INSERT INTO CITY (..., NAME, ...) VALUES (..., 'Manchester', ...)被执行,则数据库将字符串Manchester为 40 个字符,然后将其存储在NAME柱子。 稍后,如果查询SELECT * FROM CITY WHERE NAME = '...