mysql nvl2 函数_Oracle的nvl函数和nvl2函数详解

mysql nvl2 函数_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 参数查询到为 n

一、基本语法

介绍一下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/u0/article/details/

我用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://javaforall.net/226320.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午11:49
下一篇 2026年3月16日 下午11:49


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号