在select语句中将结果增加1

时间:2014-03-22 14:05:27

标签: sql oracle

我想在大于10的日期时将结果递增1。 我希望在MONTHS_BETWEEN oracle函数

中按结果增加一个
select
dt1, dt2,
   CASE
   when 
    TRUNC( months_between(dt1,dt2) ) <= 0 then 0
   when
     TO_NUMBER(TO_CHAR( TO_DATE(dt2,'DD/MM/YYYY'),'DD')) > 10
     then
     TRUNC( months_between(dt1,dt2) )
   end as mths
from
(
    select date '2013-12-01' dt1, date '2013-12-25' dt2 from dual 
)

1 个答案:

答案 0 :(得分:1)

你的需求不明确......

当...构造是一个非常基本的 - 从我理解你需要的 - 我不明白你为什么不使用:

CASE WHEN months_between(dt1,dt2) > 10 THEN add_months(dt2,1) ELSE dt2

或类似的......

如果我没有给出足够广泛的答案来解决问题 - 请详细描述问题,并提供一些输入和预期输出的例子......