nvl函数

Orcal nvl函数

谁说我不能喝 提交于 2019-12-05 01:52:53
NVL (E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。但此函数有一定局限,所以就有了NVL2函数。 拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。 NVL 2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。 NVL函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,主要用于对数据列上的空值进行处理,语法格式如:NVL( string1, replace_with) 如果第一个参数的值为空值,则返回第二个参数的值,否则返回第一个参数的值。如果两个参数的值都为空值,则返回空值。第一个参数和第二个参数可以是任何类型的数据,但两个参数的数据类型必须相同(或能够由Oracle隐式转换为相同的类型)。 引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。 另一个有关的有用方法 declare i integer select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1 这样就可以把获得的合计值存储到变量 i中,如果查询的值为null就把它的值设置为默认的1 oracle中:

Oracle NVL 函数 nvl nvl2

此生再无相见时 提交于 2019-12-03 11:17:09
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数。主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以。 下面简单介绍一下几个函数的用法。 在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。 例如: SQL> select ename,NVL(comm, -1) from emp; ENAME NVL(COMM,-1) ------- ---- SMITH -1 ALLEN 300 WARD 500 JONES -1 MARTIN 1400 BLAKE -1 FORD -1 MILLER -1 其中显示-1的本来的值全部都是空值的 2 NVL2函数 NVL2函数的格式如下:NVL2(expr1,expr2, expr3) 含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值。SQL> select ename,NVL2(comm,-1,1) from emp; ENAME NVL2(COMM,-1,1) ------- ----- SMITH 1

oracle之nvl,nvl2,decode

混江龙づ霸主 提交于 2019-12-03 02:30:35
oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返回NULL。 select nvl(null, 1) from dual; --1 select nvl(2, 1) from dual; --2 select nvl(null, null) from dual; --null 2,nvl2 (E1, E2, E3) 的功能为:如果E1为NULL,则函数返回E3,否则返回E2 select nvl2(null, 1, 3) from dual; --3 ,3,decode(E1, E2, E3, E4, E5, E6 ) 如果E1==E2,则值E3,如果E1==E4,则值E5;否则E5 select decode(1, 1, 2, 3, 4, 5) from dual; --2 select decode(3, 1, 2, 3, 4, 5) from dual; --4 select decode(2, 1, 2, 3, 4, 5) from dual; --5 来源: https://www.cnblogs.com/lidelin/p/11771861.html

浅析ORACLE中NVL/NVL2/DECODE/CASE WHEN的用法

匿名 (未验证) 提交于 2019-12-03 00:22:01
NVL( ֵ1, ,结果 2)。它的功能是如果值1为空,则此函数返回 结果 2,不为空的话直接输出值1(如果两个参数都为空,那么还是返回空); 结果 3, 结果 2),多了一个 结果 3在中间, 功能 是当值1不为空的时候,此函数返回 结果 3,如果写成NVL2(值1, 结果 1, 结果 2),那么效果就等同于NVL(值1, 结果 2)了 ; 值1,条件1,结果1,条件2,结果2,条件N,结果N.....,值X ) 。 它的功能是当值1等于条件1的时候,输出结果1,等于条件2的时候,输出结果2,等于条件N的时候,输出结果N,所有条件值都不等的时候,输出值X。 >=,<,<=,<>,is null,is not null 等的判断 。 文章来源: 浅析ORACLE中NVL/NVL2/DECODE/CASE WHEN的用法

mysql ifnull

旧时模样 提交于 2019-12-02 12:54:26
ifnull(field,0):如果field为null,则值为0; 先看下SELECT * FROM mytest.orders; 使用ifnull() select id,product,ifnull(price,0) from orders; oracle中使用 nvl() 函数达到一样的功能,mysql中没有nvl()函数。 来源: https://blog.csdn.net/xldmx/article/details/102761260

ETL 开发笔记

橙三吉。 提交于 2019-11-27 08:31:13
一、Oracle的NVL函数用法【从两个表达式返回一个非 null 值。】? 语法【NVL(eExpression1, eExpression2)】 参数【eExpression1, eExpression2】 如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。 返回值类型【字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值】 在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。 【select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID】 注意:两个参数得类型要匹配 例如: SELECT T.D_FDATE, T.VC_ZHCODE, NVL(SUM(T.F_FZQSZ), 0) f_price_b, NVL(SUM(T.F_FZQCB), 0) f

PLSQL复习笔记2014/2/16

放肆的年华 提交于 2019-11-26 21:22:05
复习笔记 Day01 一、数据库环境及历史 1、历史 文件管理系统 网状数据库管理系统 关系型数据库 nosql 2、常用数据库 sqlserver(ms) :办公室级别或部门级别的数据 mysql:中小型数据库;开源 oracle db2 sysbase: 二、数据库设计基础 1、设计和建模的必要性 节约存储空间 数据完整性 方便开发 2、操作流程 收集信息 对象识别 数据模型 信息类型 关系 3、建模 a 三种模式 b 设计模型 e-r图 4、规范化 关系型数据库的特点:数据以表格的形式呈现 范式 三、oracle的使用 环境: 本地使用sqlplus 1、sqlplus概念 作用:用于管理oracle数据库,默认形式为指令 2、登录 (scott/tiger 使用案例) sqlplus scott/tiger 这个账户在安装时没有解锁,那么不能登录 3、解锁账户 以管理员的身份登录(本机) sqlplus / as sysdba 解锁指令 alter user scott account unlock; 4、查看身份 show user; 5、切换账户 conn 账户名/密码 6、查看当前用户所有表 select table_name from user_tables; emp:员工表 dept:部门表 查看表结构 desc 表名 7、查看当前实例(管理员) select