我需要一个列,当enddate为null或更大时,sysdate然后将状态值显示为“active”或“inactive”。
我可以使用解码或案例吗?
答案 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;