DB2 COALESCE

1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成'';

2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;

3. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,'')把NULL转换成'',然后判断函数返回值是否为'';

4. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。


--建立测试环境

DB2 COALESCE 测试db2 => connect to minideft

 数据库连接信息
 数据库服务器         = DB2/NT 9.5.1
 SQL 授权标识         = ALVIN
 本地数据库别名       = MINIDEFT

 

--插入测试值

db2 => create table t1(c1 int,c2 varchar(10),c3 date,c4 timestamp)
DB20000I  SQL命令成功完成。
db2 => insert into t1(c1,c2,c3,c4)values(1,'1',current date,current timestamp)
DB20000I  SQL命令成功完成。
db2 => insert into t1(c1)values(1)
DB20000I  SQL命令成功完成。
db2 => insert into t1(c2)values('1')
DB20000I  SQL命令成功完成。
db2 => insert into t1(c3)values('2005-01-01')
DB20000I  SQL命令成功完成。
db2 => insert into t1(c4)values('2005-01-01 00:00:00.000000')
DB20000I  SQL命令成功完成。
db2 => select * from minideft.t1
SQL0204N  "MINIDEFT.T1" 是一个未定义的名称。  SQLSTATE=42704


--查询原表数据

db2 => select * from t1

C1             C2            C3            C4
----------- ---------- ----------  --------------------------
          1     1             2010-01-21 2010-01-21-11.11.25.405000
          1     -             -                -
          -     1             -                -
          -     -             2005-01-01  -
          -     -             -                2005-01-01-00.00.00.000000

  5 条记录已选择。


--调用函数示例

db2 => select coalesce(c1,0),coalesce(c2,'fuck'),coalesce(c3,'2000-01-01'),coale
sce(c4,'2000-01-01 00:00:00.000000') from t1

1               2             3                4 
----------- ---------- ----------   --------------------------
          1     1             2010-01-21  2010-01-21-11.11.25.405000
          1     fuck         2000-01-01  2000-01-01-00.00.00.000000
          0     1             2000-01-01  2000-01-01-00.00.00.000000
          0     fuck         2005-01-01  2000-01-01-00.00.00.000000
          0     fuck         2000-01-01  2005-01-01-00.00.00.000000

  5 条记录已选择。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值