【查询语句】求这句话该怎么写
一个表包含两个字段,第一个是开始时间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
--结果
-------------------------------------------------------
1 2012/01/01
2 2012/03/01