Oracle null判断并替换空值

  可用 NVL(), IFNULL() ,COALESCE(),DECODE() 函数

1.NVL()

从两个表达式返回一个非 null 值。
语法
NVL(eExpression1, eExpression2)
参数
eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

2.NULLIF()

如果两个指定的表达式相等,则返回空值。
语法NULLIF ( expression1 , expression2 )
参数expression1, expression2
常量、列名、函数、子查询或算术运算符、按位运算符以及字符串运算符的任意组合。
返回类型与第一个 expression1 相同。

NULLIF与DECODE

NULLIF(param,0)等效于DECODE(param,0,null,param):如果param为0,则返回null,否则返回param。

3.COALESCE()

Oracle COALESCE函数语法为COALESCE(表达式1,表达式2,...,表达式n),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值。

注意:所有表达式必须为同一类型或者能转换成同一类型。

4.DECODE()

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

该函数的含义如下:

IF 条件=值1 THEN
    RETURN(返回值1)
ELSIF 条件=值2 THEN
    RETURN(返回值2)
    ......
ELSIF 条件=值n THEN
    RETURN(返回值n)
ELSE
    RETURN(缺省值)
END IF

参考:https://www.2cto.com/database/201303/193911.html

ORACLE中DECODE的用法(例子)

Oracle的NVL函数用法

用 ISNULL(), NVL(), IFNULL() and COALESCE() 函数替换空值

原文地址:https://www.cnblogs.com/wangfuyou/p/10107137.html

时间: 2025-01-05 03:07:43

Oracle null判断并替换空值的相关文章

C#空值和null判断

一.空值判断效率 string s = ""; if(s == ""){} if(s == string.Empty){} if (string.IsNullOrEmpty(s)) {} if(s != null && s.Length ==0) {} if((s+"").Length == 0){} 1,2最慢:3较快:4,5最快 1,2几乎没区别:4,5几乎没区别 二.空值和null判断 if (string.IsNullOr

Oracle NULL相关函数

一.NVL 官方解释: Purpose NVL lets you replace null (returned as a blank) with a string in the results of a query. If expr1 is null, then NVL returns expr2. Ifexpr1 is not null, then NVL returns expr1. 如果expr1是null,则返回expr2,如果expr1 is not null,则返回expr1. Th

【转】oracle null

转自:oracle的null和空字符串'' 1.oracle 将 空字符串即''当成null 2.null 与任何值做逻辑运算得结果都为 false,包括和null本身 3.用 is null 判断时,空字符串和 null 都 is null 4.null 和任何数值进行数学运算,结果都为 null 5.可以使用 || 将空字符串或 null 和字符串连接 select 'a' || null || 'b' from dual; =>结果为ab 6.null作为以下的 Oracle 内置的函数的

mysql不等于判断时,空值过滤问题

产生根源 比如我们有三条数据,对应的列名是delete_flag,对应的数据是'normal','delete',null. 此时我们查所有不等于delete的记录,我们期望的是两条记录 normal和null.我们书写如下sql. select * from a where delete_flag != 'delete' 发现查询出来的结果只是一条,这是因为mysql的空值过滤机制. 解决 1.进行一下非null判断 select * from a where IFNULL(delete_fl

ArcGIS10.1注册地理数据库报machine:机器名[Oracle:(null)]错误的修改

环境介绍:本机安装了ArcGIS Server10.2,ArcGIS Desktop10.2,64位Oracle11g以及Oracle32位客户端.直连和服务连接都能成功. 问题:我要进行服务发布的时候,为了避免数据打包上传到服务器,于是想先注册数据库,在注册界面填写如下参数: 然后点击OK,显示界面如下: 当我再点击OK的时候,Server检测数据库的连接情况,过了一会就报出machine:机器名[Oracle:(null)]的错误: 于是开始检查数据库的连接是否正常.在Database Co

hive 空值、NULL判断

hive中空值判断基本分两种 (1)NULL 与 \N hive在底层数据中如何保存和标识NULL,是由 alter table name SET SERDEPROPERTIES('serialization.null.format' = '\N'); 参数控制的 比如: 1.设置 alter table name SET SERDEPROPERTIES('serialization.null.format' = '\N'); 则:底层数据保存的是'\N',通过查询显示的是'NULL' 这时如果

oracle数据类型number 为null 判断

number 可以是整数,也可以是含小数点的小数 操作项: a(number(18,2)),b(number(18,2)), +相加) 1.如果操作项有一个为 null, 相加结果为null ,a+null= null 2.正确写法:nvl(a,0)+nvl(b,0) sum 求和并相加)(sum求和 会自动把null值补0) 1.此写法结果错误: result1=sum(a+b) 2.此写法结果错误: result2= sum(a)+sum(b) .出错原因为:sum(null+null) =

oracle自定义判断数据是否为数值函数

1 CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2) 2 RETURN NUMBER 3 IS 4 v_str VARCHAR2 (1000); 5 BEGIN 6 IF str IS NULL 7 THEN 8 RETURN 0; 9 ELSE 10 v_str := translate(str, '.0123456789', '.'); 11 12 IF v_str = '.' OR v_str = '+.' OR v_str =

javascript判断变量是不是空值

JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同.所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefined, null, '', NaN,false,0,[],{} ,空白字符串,都返回true,否则返回false 方法: function isEmpty(v) { switch (typeof v) { case 'undefined': return true