Oracle的nvl函数和nvl2函数

一、基本语法

介绍一下oracle的nvl函数和nvl2函数。

nvl函数

nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。

nvl2函数

nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。

二、业务场景

nvl()函数比较常用的是这样的nvl(E1,0),意思是E1参数查询到为null的情况,就返回0,不为null就返回E1,常用于非空校验。

nvl2()函数也讲一个业务场景。今天用列转行函数vm_concat查询的时候,遇到一个问题,对vm_concat不熟悉的可以参考我的另外一篇博客:https://blog.csdn.net/u014427391/article/details/84981114

我用vm_concat查询,假如b参数为空的情况就会出现“a()”的参数,我想做的是b参数为空的情况,直接返回“a”参数,b参数不为空的情况才返回“a(b)”类型的数据,比如可以是用户名a(账号b)这样显示。原来SQL是这样的。

select to_char(nvl2(b,vm_concat(a||‘(‘||b||‘)‘), ‘‘) from A group by id

改写SQL,通过nvl2函数实现改写:

select to_char(wm_concat(nvl2(b,
                             a || ‘(‘ || b || ‘)‘,
                              a))) as 返回参数

原文地址:https://www.cnblogs.com/mzq123/p/10117138.html

时间: 2024-09-30 14:08:34

Oracle的nvl函数和nvl2函数的相关文章

oracle中的nvl(), nvl2()函数

nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with) 功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值. 注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数. 例子: nvl(to_char(some_numeric),’some string’) --其中some_numeric指某个数据类型的值. 例如: nvl(y

oracle中nvl()函数

oracle的nvl函数的使用方法 通过查询获得某个字段的合计值,假设这个值位null将给出一个预设的默认值 select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1 这里关心的nvl的使用方法,nvl(arg,value)代表假设前面的arg的值为null那么返回的值为后面的value 如: NVL(a,b)就是推断a是否是NULL,假设不是返回a的值.假设是返回b的值 通过查询获得某个字段的合计值,假设这个值位null将给出一个预设的默认

NVL 和NVL2函数

NVL 和NVL2函数 NVL函数: nvl(exp1,exp2) -->如果exp1为null则换成exp2 nvl2函数: nvl2(exp1,exp2,exp3) -->如果如果exp1 不为null返回exp2;为null返回exp3

Oracle学习笔记六 SQL常用函数

函数的分类 Oracle 提供一系列用于执行特定操作的函数 SQL 函数带有一个或多个参数并返回一个值 以下是SQL函数的分类: 单行函数对于从表中查询的每一行只返回一个值 可以出现在 SELECT 子句中和 WHERE 子句中 单行函数可以大致划分为: 1.日期函数 2.数字函数 3.字符函数 4.转换函数 5.其他函数 单行函数 日期函数 日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果 日期函数包括: 1.ADD_MONTHS 2.MONTHS_BETWEEN 3.LAST_D

Oracle数据库入门——sql语句和函数详解

一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构的数据定义语言命令有: create table alter table truncate table drop table eg. --创建tb_stu表数据结构 create table tb_stu( id number, name varchar2(20) );   --修改tb_stu表数

Oracle学习(四)_SQL函数

--第一部分:SQL基础 --ch1 简单查询 --ch2 查询基本概念 --ch3 数据过滤 --第二部分:多表操作 --ch4 集合理论 --ch5 内连接 --ch6 外连接 --ch7 子查询 --第三部分:数据分组 --ch8 简单统计 --ch9 数据分组 --ch10 分组数据过滤 --第四部分:SQL函数 --ch11 内置函数 --ch12 case表达式 --第五部分:DML语句 --ch13 插入数据 --ch14 修改数据 --ch15 删除数据 ------------

ORACLE PL/SQL 字符串函数、数学函数、日期函数

ORACLE PL/SQL 字符串函数.数学函数.日期函数 --[字符串函数] --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符串从前面取三个(0开始) select Name,substr(Name,0,3) from t1; --字符串从后面取三个 select Name,substr(Name,-3

Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则. SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符.数字.日期.转换.和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数.这些函数均可用于SELECT,WHERE.ORDER BY等子句中,例如下面的例子中就包含了TO

oracle的nvl和nvl2

NVL2(expr1,expr2,expr3) 功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值:如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值. NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL.