gpt4 book ai didi

sql - 选择未包含在集合中的下一个日期

转载 作者:行者123 更新时间:2023-11-29 12:53:20 24 4
gpt4 key购买 nike

我有一个 View 列出了第二天发生的某些事件

SELECT column1, column2...
FROM table1
WHERE date = CAST(CURRENT_DATE + INTERVAL '1 DAY' AS DATE)

尽管如此,我有一个“禁止日期”表:我不能使用这组特定日期,因此,如果第二天在该禁止列表中,它必须跳到下一个。有点像这样:

SELECT column1, column2...
FROM table1
WHERE
CASE
WHEN CAST(CURRENT_DATE + INTERVAL '1 DAY' AS DATE) IN (SELECT DISTINCT date FROM forbidden_date)
THEN CAST(CURRENT_DATE + INTERVAL '2 DAY' AS DATE)
ELSE
CAST(CURRENT_DATE + INTERVAL '1 DAY' AS DATE)
END = date

问题是“如果第二天第二天也在禁止列表中怎么办?等等等等?”

我实际上可以通过脚本控制所有这些,但我真的很好奇我是否可以仅通过查询来完成

最佳答案

使用 generate_series 返回接下来 365 天的所有日期并选择第一个不是禁止日期的日期:

SELECT column1, column2...
FROM table1
WHERE date = (
select min(d)
from generate_series(current_date + 1, current_date + 365, '1 day') as dates(d)
where d not in (select date from forbidden_dates))

关于sql - 选择未包含在集合中的下一个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49019899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com