Sql 需要使用解码或案例功能的帮助吗

Sql 需要使用解码或案例功能的帮助吗,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我需要一个列,当enddate为null或大于sysdate时,将状态值显示为“活动”或“非活动” 我可以使用decode或case吗?我建议您使用这样的case语句,因为在性能上没有太大差异,而且case更清晰 SELECT CASE WHEN ( ENDDATE IS NULL OR ENDDATE > SYSDATE ) THEN 'ACTIVE' ELS

我需要一个列,当enddate为null或大于sysdate时,将状态值显示为“活动”或“非活动”


我可以使用decode或case吗?

我建议您使用这样的case语句,因为在性能上没有太大差异,而且
case
更清晰

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

您可以尝试以下方法:

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