NVL函数Oracle/PLSQL的函数。
形式如下。
NVL(string1,replace_with ) ) ) ) ) )。
功能:如果string1为空,则NVL函数返回replace_with的值,否则返回string1的值。
注意: string1和replace_with必须具有相同的数据类型,除非使用显示的TO_CHAR函数。
示例: nvl(to_char(numeric_column ),' some string ' ),其中numeric_column是指数字类型的值。
示例: nvl (yanlei 777,0 ) 0
nvl (Yanlei777,0 )表示如果yanlei 777为空,则为0
通过查询获取字段的合计值。 如果此值为null,则会预设默认值
例如:
选择nvl (sum (t.dwxhl,1 ) )。
from tb_jhde t
如果sum(t.dwxhl )=NULL,则返回1
另一个有用的方法是
declare i integer
selectnvl(sum(t.dwxhl ),1 ) into i from tb_jhde t where zydm=-1可以将由此得到的总值存储在变量中
在I中,如果查询的值为null,则将该值设置为默认值1
在oracle中为:
selectnvl(rulescore,0 ) fromzwjc _ graderulewhererulecode=' fwtd ';
如果记录中不存在rulecode='FWTD '的数据,则无法找到数据。
selectnvl(rulescore,0 ) into rule _ scorefromzwjc _ graderulewhererulecode=' fwtd '; 无法报告数据错误
selectnvl(sum(rulescore ),0 ) fromzwjc _ graderulewhererulecode=' fwtd ';
如果记录中不存在rulecode='FWTD '的数据.仍然会得到矩阵名为nvl(rulescore,0 )且值为0的数据.
selectnvl(sum(rulescore ),0 ) into rule _ scorefromzwjc _ graderulewhererulecode=' fwtd '; 不报告错误
NVL扩展-NVL2
Oracle扩展了NVL函数的功能,并提供了NVL2函数。
关于nvl2(E1、E2、E3 )的功能,如果E1为空则函数返回E3,如果E1不为空则返回E2。