`
EdgenHuang
  • 浏览: 109504 次
  • 性别: 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 与 0、空字符串、空格不同,它们是不同的概念。 认识 null 在 Oracle 中,null 称它为空,等价于没有任何值、是未知数。null 与 0、空字符串、空格不同,例如在 PL/SQL 中,空串与 NULL 被视为...

    oracle通过sql实现字符串转数字oracle函数

    `TO_NUMBER(string, format_mask)`函数接收两个参数:要转换的字符串和可选的格式掩码。格式掩码允许我们指定字符串中数字的格式,例如千位分隔符、小数点等。如果不提供格式掩码,Oracle会尝试根据默认的数字模式来...

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

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    oraclesql判断值为空-Oracle-sqlserver的空值(null)判断.pdf

    因此,我们不能像字符串和数字那样进行比较,而是需要使用 `isNull` 和 `is not null` 来判断值是否为空或 Null。 在 Oracle 和 SQL Server 中,我们可以使用 `NVL` 和 `ISNULL` 函数来判断值为空或 Null,並使用 `...

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

    在Oracle数据库中,字符串处理是日常数据库操作的重要组成部分。这里我们详细探讨了多个与字符串相关的函数,它们在处理和操作文本数据时非常有用。 1. **SUBSTR** 函数:这个函数用于从字符串中提取子串。基本语法...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...

    Oracle数据库中单行字符串函数简介

    Oracle数据库中的单行字符串函数是处理和操作字符串数据的关键工具,它们主要用于字符串的组合、转换、查找、截取等操作。下面将详细介绍这些函数的功能和用法。 1. ASCII() 函数:ASCII()函数接收一个字符串作为...

    Oracle中的日期和字符串互相转换

    ### Oracle中的日期和字符串互相转换 在Oracle数据库中,日期和字符串之间的转换是十分常见的操作。这类转换在处理数据时非常有用,可以帮助我们更高效地管理和查询数据。本文将详细介绍Oracle中日期与字符串互相...

    ORACLE常用数值函数、转换函数、字符串函数介绍

    ### ORACLE常用数值函数、转换函数、字符串函数详细介绍 #### 数值函数 1. **ABS(M)** - **功能**: 返回数值M的绝对值。 - **示例**: 如果输入`-123`, 函数返回`123`。 2. **MOD(M, N)** - **功能**: 返回M...

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

    在Oracle数据库中,对null值的排序以及null与空字符串的区别是数据库操作中常见的问题,尤其是在数据查询和分析时。Oracle规定,在`ORDER BY`语句执行排序时,默认情况下null被视为最大值。这意味着在升序(ASC)...

    Oracle中分组后拼接分组字符串.pdf

    Oracle 中分组后拼接分组字符串 本文主要介绍了在 Oracle 中如何对分组后的数据进行拼接操作,生成分组字符串。下面将对这个问题进行详细的分析和解释。 首先,我们需要创建一个测试表,并插入一些测试数据。这个...

    Oracle中分组后拼接分组字符串[文].pdf

    Oracle 中分组后拼接分组字符串 在 Oracle 中,分组后拼接分组字符串是一种常见的操作,用于将分组后的多条记录的某字段进行拼接。下面我们来详细介绍如何实现这种操作。 首先,创建一个测试表 `test`,该表包含三...

    C#中的oracle数据库连接字符串,数据库帮助类,DBHelper.cs

    C#中的 Oracle 数据库连接字符串和数据库帮助类 C# 中的 Oracle 数据库连接字符串是指在 C# 项目中连接 Oracle 数据库所需的字符串。该字符串通常包含了数据库连接所需的信息,如数据库服务器的地址、用户名、密码...

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

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

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

    在大多数情况下,varchar2类型是更好的选择,因为它可以存储变长字符串,而char类型只能存储固定长度的字符串。 在使用jdbc查询时,也需要注意char类型字段的特殊性。例如,使用PreparedStatement方式查询数据时,...

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

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

    oracle中的null_考试题目

    10. **字符串连接**: 当连接字符串时遇到`NULL`,结果也将是`NULL`。 - **题目示例**: - 第10题中,`id || cardno`的结果是`NULL`,因为`cardno`为`NULL`。 - **选项分析**: - A. `NULL`: 正确。 - B. `2`: ...

    Oracle 验证是否是日期

    - **空值检查**:如果输入字符串为空,则直接返回0。 - **长度检查**:日期字符串应该为8位数字(YYYYMMDD),如果不是,则返回0。 - **正则表达式检查**:使用正则表达式验证字符串是否全由数字组成,如果不是,...

Global site tag (gtag.js) - Google Analytics