在做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 |
但听网上说 value 不db转换是不通用,没有试过,应该有这么回事,在以后使用过程中,多用coalesce少用value吧
相关文章:
貌似这个问题,你在我这里,帮我做东西的时候,上网查过两次,哈哈