gpt4 book ai didi

sql - 在 SQL 中查找具有重叠日期范围的记录

转载 作者:行者123 更新时间:2023-12-04 02:02:20 37 4
gpt4 key购买 nike

我有下表和数据:

CREATE TABLE customer_wer(
id_customer NUMBER,
name VARCHAR2(10),
surname VARCHAR2(20),
date_from DATE,
date_to DATE NOT NULL,
CONSTRAINT customer_wer_pk PRIMARY KEY (id_customer, data_from));

INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-00', '31-MAR-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-00', '30-JUN-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '15-JUN-00', '30-SEP-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-OCT-00', '31-DEC-00');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JAN-01', '31-MAR-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-APR-01', '30-JUN-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-JUL-01', '5-OCT-01');
INSERT INTO customer_wer VALUES (4, 'Karolina', 'Komuda', '01-OCT-01', '31-DEC-01');

我需要一个 SELECT 查询来查找具有重叠日期的记录。这意味着在上面的例子中,我应该在结果中有四个记录

number 
2
3
7
8

提前致谢。我正在使用 Oracle 数据库。

最佳答案

较早的答案没有考虑到 t2 完全在 t1 内的情况

select * from t t1
join t t2 on (t1.datefrom > t2.datefrom and t1.datefrom < t2.dateto )
or (t1.dateto > t2.datefrom and t1.dateto < t2.dateto )
or (t1.dateto > t2.dateto and t1.datefrom < t2.datefrom)

关于sql - 在 SQL 中查找具有重叠日期范围的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29943714/

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