首页 > 编程知识 正文

oracle的nvl用法,sql中nvl的用法

时间:2023-05-05 07:49:34 阅读:165120 作者:1230

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。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。