我有一个SQL查询,我需要优化它,因为现在它似乎永远都在运行。我已经运行了5个多小时,但它似乎还没有结束。
SELECT
a.HD_ID,
CASE WHEN date_from > b.date_tag THEN date_from
ELSE b.date_tag
END date_from1,
CASE WHEN trunc(date_to)=b.date_tag THEN date_to
ELSE b.date_tag + interval '23 hours, 59 minutes,59 seconds'
END date_to1
FROM table1 a
JOIN table2 b
ON (b.date_tag between trunc(date_from) and date_to)
WHERE a.first_date between '2015-08-11' and sysdate-3;我认为这个问题是由于日期字段的原因,但我不知道有什么方法可以优化日期操作。有没有人能帮我一下?
发布于 2018-04-06 19:20:49
请尝试:
SELECT
a.HD_ID,
CASE WHEN date_from > b.date_tag THEN date_from
ELSE b.date_tag
END date_from1,
CASE WHEN trunc(date_to)=b.date_tag THEN date_to
ELSE b.date_tag + interval '23 hours, 59 minutes,59 seconds'
END date_to1
FROM table1 a
JOIN table2 b
ON trunc(date_from) >= b.date_tag <= date_to
WHERE '2015-08-11' >= a.first_date <= sysdate-3;https://stackoverflow.com/questions/46947336
复制相似问题