我要基于条件执行select语句,更改互斥的where条件
我想根据日期从表中获取数据。如果当前日期是16日,那么我希望获得当月1-12日的数据,如果它是4日,那么我希望获得前一个月的数据。我不知道如何使用,如果或何时与此。我如何添加条件,根据该条件我可以执行which语句之一。我正在尝试自动执行将在每月16日和4日运行的报告,并且将要添加到报告中的数据如前所述。我正在使用Oracle数据库
答案 0 :(得分:1)
使用ANSI / ISO语法的逻辑如下所示:
where (extract(day from current_date) = 16 and
extract(month from datecol) = extract(month from current_date) and extract(year from datecol) = extract(year from current_date)
) or
(extract(day from current_date) = 4 and
extract(month from datecol) = extract(month from current_date - interval '1 month') and extract(year from datecol) = extract(year from current_date - interval '1 month')
)
当然,日期函数因数据库而异,因此可能需要针对您的特定数据库进行调整。