Oracle中nvl函数的用法和作用是什么

Oracle中nvl函数的用法和作用是什么,第1张

用法:查询不相等数据

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

用法:如果是空值就替换成另一个值如nvl(字段,‘x’)字段值等于null就这个函数得到的结果就是'x',一般用于存在空值比较的情况下,比如字段a与字段b都是int型,其中一个等于null另一个为非空值,你使用a<>b是不成立的。

使用此条件查询你将丢失这条本来不相等的数据,可以如此用法nvl(字段,-1)<>nvl(字段,-1),这样就可以得到想要查询的数据,当然查询数据的前提是此字段值不能有-1值才能用这种写法

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,例:nvl(yanlei777,0) > 0NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 则取0值通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。

看"空"在你的定义里是最小还是参照数了一般情况下要么等同于0或负值,要么看做最小

EXP: 字段1 A 字段2 B

1等于0

在比较前取数时,用isnull(A/B,0)将A/B替换成0再比较

(正常来说int型列值在insert语句下不输入会为0但手工插入或外媒体导入会发生空值)

2看做最小

举个例子:

declare @A int

declare @B int

set @A=1

set @B=null

--select @A a,len(@A)la,@B b,len(@B)lb

select case

when @A=@B or isnull(len(@B),0)=isnull(len(@A),0) then '相等'

when isnull(len(@A),0)=0 then 'B大'

when isnull(len(@B),0)=0 then 'A大'

when @A>@B then 'A大'

else 'B大' end as 'result'

以上就是关于Oracle中nvl函数的用法和作用是什么全部的内容,包括:Oracle中nvl函数的用法和作用是什么、Sql Server 2005中当两个整型字段中一个为空时如何比较大小、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9724239.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存