我有一张类似的桌子
TradeDate | Widgets
12-DEC-2020 6
13-DEC-2020 3
13-DEC-2020 9
14-DEC-2020 3
15-DEC-2020 12
15-DEC-2020 4
...
08-JAN-2020 11
...
我想编写一个每日查询,该查询根据今天的日期返回结果集。如果今天的日期为25-DEC-2020
或01-JAN-2020
我想返回TradeDate
今天的日期或1天后的行。
TradeDate | Widgets
25-DEC-2020 26
25-DEC-2020 13
26-DEC-2020 19
26-DEC-2020 34
否则,如果日期不是12月25日,1月1日或其他指定的日期,则我只想检索具有当前日期的记录。如果今天是12月13日,那么结果将显示:
TradeDate | Widgets
13-DEC-2020 3
13-DEC-2020 9
我以为我是在使用的东西CASE
在WHERE
:
SELECT TradeDate, Widgets FROM table
WHERE
CASE WHEN (current_date like '25-DEC%' OR current_date like '01-JAN%')
THEN (TradeDate = current_date or TradeDate = current_date +1 )
ELSE TradeDate = Current_date
但这是行不通的。有没有简单的方法可以实现我所追求的目标?动态WHERE
条件?
您可以使用OR
以下方法:
SELECT TradeDate, Widgets
FROM table
WHERE (to_char(sysdate,'dd-MON') in ('25-DEC','01-JAN')
AND TRADEDATE >= TRUNC(SYSDATE)
AND TRADEDATE < TRUNC(SYSDATE) + 2
)
OR TRADEDATE = TRUNC(SYSDATE)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句