【发布时间】:2020-01-05 11:32:00
【问题描述】:
刚刚开始了解 PL/SQL。
我想创建一个 SELECT 脚本,该脚本将显示开始日期和结束日期之间的日期差异,然后在 Flag_Status 列中相应地显示一条消息。
如果计算结果为 28 天或更短 - 这应显示:“due to expire in the next 28 days”。
如果计算结果超过 28 天 - 这应该显示:“由于从今天起超过 28 天到期”。
否则显示:“已经过期”。
我尝试过使用 CASE、WHEN 和 THEN 语句。我已将计算包含在 CASE 功能中,但是在运行时,我遇到了无效标识符错误消息。
SELECT eligible_start, eligible_end,
CASE
WHEN to_date(eligible_end) - to_date(eligible_start) <= 28 THEN "due to expire within the next 28 days"
WHEN to_date(eligible_end) - to_date(eligible_start) > 28 THEN "due to expire more than 28 days from today"
ELSE "already expired"
END AS Flag_Status
FROM Check_Table
我希望输出显示符合条件的开始日期、符合条件的结束日期和名为“Flag_Status”的列以及相应的消息。
输出显示错误消息“已过期”无效标识符。
请有人建议或提供一些建议吗?
【问题讨论】:
-
嗨,戈登,感谢您的快速回复!我在上面进行了编辑,并包含了一个关于所需结果的链接。我希望这会有所帮助。
-
需要注意的一点是,对于“将在接下来的 28 天到期”,您不应该有“
标签: sql oracle plsql plsqldeveloper