我正在尝试在 Toad Data Point 中构建查询。我有一个子查询,它有一个行号来标识我感兴趣的记录。只有当行号为 1 时,这个子查询才需要连接到主表上。这是我试图可视化的查询:
SELECT distinct E.EMPLID, E.ACAD_CAREER
FROM PS_STDNT_ENRL E
LEFT JOIN (
SELECT ACAD_CAREER, ROW_NUMBER() OVER (PARTITION BY ACAD_CAREER ORDER BY EFFDT DESC) as RN
FROM PS_ACAD_CAR_TBL
) T on T.ACAD_CAREER = E.ACAD_CAREER and RN = 1
当我尝试复制它时,行号条件被放置在全局 WHERE 子句中。这不是预期的功能,因为它有效地删除了子查询中没有匹配的任何记录,使其成为内部连接。
这是它生成的查询:
SELECT DISTINCT E.EMPLID, E.ACAD_CAREER, T.RN
FROM SYSADM.PS_STDNT_ENRL E
LEFT OUTER JOIN
(SELECT PS_ACAD_CAR_TBL.ACAD_CAREER,
ROW_NUMBER ()
OVER (PARTITION BY ACAD_CAREER ORDER BY EFFDT DESC)
AS RN
FROM SYSADM.PS_ACAD_CAR_TBL PS_ACAD_CAR_TBL) T
ON (E.ACAD_CAREER = T.ACAD_CAREER)
WHERE (T.RN = 1)
有没有办法让查询生成器将该行号条件放在左连接而不是全局 WHERE 子句上?