db2中是否有类似于oracle中nvl的函数使用总结

09年04月27日

 

在做db检索等相关操作时,常常遇到以下这种情况

 

SELECT A, B, A+B AS C
FROM 表名
WHERE nd =2009
AND dwid = 10000

 

存在的问题:如果在db表中A或者B中有一个为null,则C就为null

这显然不符合正常的逻辑,那么应该怎么处理呢?

 

在oracle中 系统为我们提供了一个函数叫nvl(,)

而在db2中提供的则是coalesce(,)   or   value(,) 两种方式

用法一样

写一个sample:

SELECT A, B, coalesce(A,0)+value(B,1) AS C
FROM 表名
WHERE nd =2009
AND dwid = 10000

结果为 A = null  
         B = null
         C = 1 

 

但听网上说 value 不db转换是不通用,没有试过,应该有这么回事,在以后使用过程中,多用coalesce少用value吧






相关文章:

  1. DB2中case的用法
  2. 使用DB2必须了解的几个知识点
  3. DB2中rownumber(rowno)
  4. JSTL 学习、应用记录
  5. Eclipse 数据库插件比较



  • 原文链接: http://www.astesys.com/database/db2/107.html
  • 转载文章请注明: 爱思特
  • Tags: , , , , 分类: DB2

    [db2中是否有类似于oracle中nvl的函数使用总结]共有:1 条评论

  • mengxue :

    貌似这个问题,你在我这里,帮我做东西的时候,上网查过两次,哈哈

  • 发表评论