整理了一下办公电脑的桌面,发现一个文本文件,里面是一条select语句,忽然想起前些天副组长说的复习SQL语句时的要求,他是随便找了一个表,然后看到里面有日期,提出如下要求:
要求输出这个表的时候,如果日期为空,要求输入一个指定的日期,如果不为空,则输出原来的日期。
说明这个函数,下面构造一个小表吧:
表名 :“T” ,
字段一:“BH”,编号
字段二:“RQ”,日期
按照上面要求,使用的函数是 isnull ,然后得到的select语句是:
select BH,isnull(RQ, '2010-1-21 13:05:00') from T;
但是这样还是出错,因为是日期型记录日期字段,所以还要有固定的格式,使用格式转换函数to_data,所以得到的SQL语句是:
select BH,isnull(RQ, to_data('2010-1-21 13:05:00','yyyy-MM-dd HH:mi:ss')) from T;
这样,就能正确执行了,而且也符合要求,但是企业设计,使用的是Oracle数据库,使用的函数并不是isnull,在Oracle里相对应的函数是nvl,如下:
select BH,nvl(RQ, to_data('2010-1-21 13:05:00','yyyy-MM-dd HH:mi:ss')) from T;
大体解决这个要求的思路就是这样子,由于这里网络原因,这几天没法连上数据库再测试一遍,如有错误,请提出,共同探讨。