zgxzowen 2011-02-23
oracle的nvl函数的用法
通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值
selectnvl(sum(t.dwxhl),1)fromtb_jhdetwherezydm=-1
这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value
如: NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如果是返回b的值 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值另一个有关的有用方法
declare
iinteger
selectnvl(sum(t.dwxhl),1)intoifromtb_jhdetwherezydm=-1
这样就可以把获得的合计值存储到变量i中,如果查询的值为null就把它的值设置为默认的1Oracle下Nvl函数 nvl( ) 函数 从两个表达式返回一个非 null 值。
语法
NVL(eExpression1,eExpression2)
参数
eExpression1,eExpression2
如果eExpression1的计算结果为null值,则NVL()返回eExpression2。如果eExpression1的计算结果不是null值,则返回eExpression1。eExpression1和eExpression2可以是任意一种数据类型。如果eExpression1与eExpression2的结果皆为null值,则NVL()返回.NULL.。
返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或null值
说明
在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。 select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID 注意:两个参数得类型要匹配select tablespace_name, sum, sum, sum, sum / sum * 100, sum / sum * 100from group by tablespace_name