一.基本语法
介绍oracle的nvl函数和nvl2函数。
nvl函数
nvl函数的基本语法为nvl(E1,E2 ),表示如果E1为空则返回E2,否则返回E1。
nvl2函数
nvl2函数是nvl函数的扩展,基本语法是nvl2(e1,E2,E3 ),意味着如果E1为空则返回E3,如果不是空则返回E2。
二.业务场景
nvl ) )函数经常使用这样的nvl (E1,0 )。 这经常用于非空检查,因为如果E1参数为null,则返回0,否则返回E1。
nvl2) )函数也说业务场景。 今天,在用列跳槽函数vm_concat调查时,遇到了一个问题。 不熟悉vm_concat的人请参考我的其他博客。 https://blog.csdn.net/u 014427391/article/details/84981114
用vm_concat查一下。 假设b参数为空时,会出现“a ()的参数。 我想做的是b参数为空的情况。 直接返回“a”参数。 如果b参数不为空,则返回“a )”类型的数据。 例如用户名a ) )帐户b ) )那样显示也可以。 SQL是这样的。
selectto_char(nvl2(b,VM_concat ) a|| ) (|b|) ) ) ) ) from A group by id
重写SQL,使用nvl2函数进行重写:
slectto_char(WM_concat ) nvl2) b,
a|||'((||b|| ) ),
a ) ) as返回参数