【发布时间】:2019-08-29 16:09:39
【问题描述】:
我正在尝试编写一个案例语句,它将根据当前系统日期过滤一系列日期。我需要从 30 天前到当前、30-60 天前和 60-120 天前的范围,所有这些都基于系统日期。这是我所没有的,但事实证明是不成功的:
(case
when a.last_active_date between sysdate and sysdate-30 then 'Inactive 30 Days or Less'
when a.last_active_date between sysdate-30 and sysdate-60 then 'Inactive 30-60'
when a.last_active_date between sysdate-60 and sysdate - 120 then 'Inactive 60-120'
else 'Inactive 120+ Days'
end) Inactivity,
关于我应该如何处理这个问题有什么建议吗?
【问题讨论】:
-
除了这些范围重叠,因为
between包含在内,查询不成功的原因是什么? -
你为什么要在SQL中这样做,这种事情通常在应用层处理更好。另外,这两个不同的标签是怎么回事——它是哪个 RDBMS?
-
@MichaelFredrickson - 除了重叠之外,它没有正确过滤
-
@Clockwork-Muse - 我正在将原始数据加载到 Spotfire 中,我不确定我还能如何做到这一点。这是一个 oracle 数据库。