这个查询
SELECT (SELECT CERT_NBR
FROM (
SELECT XREF.CERT_NBR, XREF.REQUEST_ID , XREF.AUDIT_TS
FROM B2B_XREF_CERT_QUOTE XREF
WHERE XREF.REQUEST_ID = REQ.REQUEST_ID
ORDER BY XREF.AUDIT_TS DESC
) WHERE rownum = 1) AS CERT_NBR
FROM B2B_RT_REQUEST REQ,
B2B_RT_RESPONSE RES
WHERE REQ.REQUEST_ID = RES.REQUEST_ID
AND UPPER(TRIM(REQ.REQUEST_ID)) IN ('RF27117FE')
在19c上运行,但是在11g上失败,有人能告诉我写同样的东西的另一种方法是什么,它将对11g起作用。
发布于 2021-03-28 05:23:34
Oracle (和MySQL)不允许嵌套相关子查询引用。您可以使用KEEP
SELECT (SELECT MAX(CERT_NBR) KEEP (DENSE_RANK FIRST ORDER BY XREF.AUDIT_TS DESC)
FROM B2B_XREF_CERT_QUOTE XREF
WHERE XREF.REQUEST_ID = REQ.REQUEST_ID
) AS CERT_NBR
您还应该学习正确的、显式的、标准的、可读的JOIN
语法。
https://stackoverflow.com/questions/66841728
复制相似问题