小编Sam*_*Sam的帖子

EXISTS无法在WITH子句中使用子查询

我遇到了EXISTS子句无法正常运行的查询。该查询甚至返回不存在匹配记录的项目的结果,似乎完全忽略了EXISTS。它过去工作正常,我认为从Oracle 12.1升级到12.2后,麻烦就开始了。

以下是完整的查询(仅更改了表和列的名称以使它们更易读,但我保留了所有逻辑以防与之相关):

WITH FirstDateFilter AS (
    SELECT ReferenceDate,
           Type,
           LAG(Type, 1, 0) OVER (ORDER BY ReferenceDate) AS PreviousType
    FROM ReferenceDateTable
    WHERE ItemId = :itemId
    AND   ReferenceDate <= :endDate
    AND   Type IN (:type1, :type2)
), SecondDateFilter AS (
    SELECT ReferenceDate
    FROM FirstDateFilter
    WHERE ReferenceDate >= :startDate
    AND   ReferenceDate >= ( SELECT StartDate FROM StartDateTable WHERE ItemId = :itemId )
    AND   Type = :type1
    AND   PreviousType = :type1
)
SELECT ReferenceDate, Value
FROM ResultTable
WHERE ItemId = :itemId
AND EXISTS ( …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

6
推荐指数
1
解决办法
118
查看次数

标签 统计

oracle ×1

oracle12c ×1

sql ×1