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

如题
2024-11-01 23:04:48
推荐回答(3个)
回答1:

如果是空值就替换成另一个值
如nvl(字段,‘x’)字段值等于null就这个函数得到的结果就是'x',一般用于存在空值比较的情况下,比如字段a与字段b都是int型,其中一个等于null另一个为非空值,你使用a<>b是不成立的,使用此条件查询你将丢失这条本来不相等的数据,可以如此用法nvl(字段,-1)<>nvl(字段,-1),这样就可以得到想要查询的数据,当然查询数据的前提是此字段值不能有-1值才能用这种写法

回答2:

if else 类似

nvl(str,1)

if str ==null
return 1;
else return str;

回答3:

 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), 'some string') 其中numeric_column代指某个数字类型的值。

  例:nvl(yanlei777,0) > 0

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

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