在oracle数据库中nvl()是什么函数?

2022-04-17 教育 128阅读

nvl()函数

语法:

NVL(eExpression1,eExpression2);

参数:

eExpression1,eExpression2。

如果eExpression1的计算结果为null值,则NVL()返回eExpression2。如果eExpression1的计算结果不是null值,则返回eExpression1。

eExpression1和eExpression2可以是任意一种数据类型。如果eExpression1与eExpression2的结果皆为null值,则NVL()返回.NULL.。

NVL(string1,replace_with)。

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

引申一下,此NVL的作用与SQLserver中的ISNULL(string1,replace_with)一样。

注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。

例:NVL(TO_CHAR(numeric_column),'somestring')其中numeric_column代指某个数字类型的值。

例:nvl(yanlei777,0)>0。

NVL(yanlei777,0)的意思是如果yanlei777是NULL,则取0值。

通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。

扩展资料:

nvl函数例子:

selectnvl(sum(t.dwxhl),1)

fromtb_jhdet。

就表示如果sum(t.dwxhl)=NULL就返回1。

另一个有关的有用方法。

declareiinteger。

selectnvl(sum(t.dwxhl),1)intoifromtb_jhdetwherezydm=-1这样就可以把获得的合计值存储到变量。i中,如果查询的值为null就把它的值设置为默认的1。

oracle中:

selectnvl(rulescore,0)fromzwjc_graderulewhererulecode='FWTD';

如果记录中不存在rulecode='FWTD'的数据.则查不出数据。

selectnvl(rulescore,0)intorule_scorefromzwjc_graderulewhererulecode='FWTD';会报查不到数据的错。

selectnvl(sum(rulescore),0)fromzwjc_graderulewhererulecode='FWTD';

如果记录中不存在rulecode='FWTD'的数据.还是可以得到一行列名为nvl(rulescore,0),值为0的数据。

selectnvl(sum(rulescore),0)rule_scorefromzwjc_graderulewhererulecode='FWTD';不会报错。



声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com