在使用解码或案例功能方面需要帮助

时间:2014-01-10 10:10:22

标签: sql oracle oracle11g

我需要一个列,当enddate为null或更大时,sysdate然后将状态值显示为“active”或“inactive”。

我可以使用解码或案例吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试以下内容:

   Select CASE WHEN (t.c1 is null or t.c1 >Sysdate) THEN 'ACTIVE' ELSE 'INACTIVE' end 
   from t;   

答案 1 :(得分:1)

我建议你有一个这样的案例陈述,因为性能没有太大差异,CASE更清楚。

SELECT
      CASE
          WHEN ( ENDDATE IS NULL
               OR ENDDATE > SYSDATE )
          THEN
              'ACTIVE'
          ELSE
              'INACTIVE'
      END
          AS CHECK_ACTIVE_STATUD
FROM
      YOUR_TABLE;