Oracle SQL-根据current_date更改WHERE条件

马普

我有一张类似的桌子

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-202001-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

我以为我是在使用的东西CASEWHERE

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL CASE语句检查多个条件

来自分类Dev

基于条件的Oracle SQL计数

来自分类Dev

从Oracle到SQL Server的多列IN条件

来自分类Dev

在Oracle SQL上使用CASE条件

来自分类Dev

Oracle SQL条件连接

来自分类Dev

Oracle SQL组按多个OR条件

来自分类Dev

Oracle SQL Where条件权重

来自分类Dev

在oracle SQL中,如何根据条件计算记录数

来自分类Dev

Oracle PL / SQL条件声明?

来自分类Dev

cx_Oracle和SQL Developer在CURRENT_DATE不一致

来自分类Dev

Oracle SQL Query根据另一个表中的条件更改列标题

来自分类Dev

Oracle SQL:WHERE子句中的MAX函数

来自分类Dev

在sql(oracle)中动态包含条件

来自分类Dev

根据内部联接插入oracle sql

来自分类Dev

如果条件在Oracle SQL中

来自分类Dev

oracle sql-根据条件过滤出重复的条目

来自分类Dev

Oracle SQL,条件外键

来自分类Dev

Oracle时间戳和current_date

来自分类Dev

Oracle SQL中的条件分组

来自分类Dev

Redshift(Oracle)的Spark SQL模拟“ SYSDATE”或“ CURRENT_DATE”

来自分类Dev

有条件的Oracle SQL案例

来自分类Dev

SQL条件选择Oracle sql

来自分类Dev

在 Oracle PL/SQL 中向 WHERE 子句添加条件

来自分类Dev

Oracle SQL - WHERE 子句行为

来自分类Dev

Oracle、SQL 根据连接表中的项目进行条件排除

来自分类Dev

Oracle SQL:在 where 条件的左侧选择不使用事务

来自分类Dev

SQL 中的 WHERE 条件 (ORACLE)

来自分类Dev

使用条件更新列 - Oracle SQL

来自分类Dev

Oracle SQL - 加入子条件