首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

【查询语句】求这句话该如何写

2014-01-05 
【查询语句】求这句话该怎么写一个表包含两个字段,第一个是开始时间start,第二个是月数month。查询结果显示结

【查询语句】求这句话该怎么写
一个表包含两个字段,第一个是开始时间start,第二个是月数month。查询结果显示结束时间也就是开始加月数。
select add_months(start,month) from table

问题是月数有的值是null,想先转换再相加,所有的null转成0.
select add_months(start,(convert(int,nvl(month,'0')))) from table

但结果还是显示的null


求助!!!!

[解决办法]
select  add_months(start,decode(month,null,0,month)) from table
[解决办法]
nvl(month,0)不就可以了,或者用你的select add_months(start,to_number(nvl(month,'0'))) from table
 
[解决办法]
不用那么麻烦,你写的类型转换有问题吧?
如下就可以


with tab as (
select '2012-01-01' yearF, null monthS from dual
union all
select '2012-01-01' yearF, '2' monthS from dual

)
select add_months(yearF, nvl(monthS, '0')) from tab

--结果
-------------------------------------------------------
12012/01/01
22012/03/01

热点排行