读书人

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

发布时间: 2014-01-05 18:22:56 作者: rapoo

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

读书人网 >oracle

热点推荐