gpt4 book ai didi

sql - Oracle(旧?)加入 - 用于转换的工具/脚本?

转载 作者:太空狗 更新时间:2023-10-30 01:46:17 24 4
gpt4 key购买 nike

我一直在移植 oracle selects,并且遇到了很多这样的查询:

SELECT e.last_name,
d.department_name
FROM employees e,
departments d
WHERE e.department_id(+) = d.department_id;

...和:

SELECT last_name, 
d.department_id
FROM employees e,
departments d
WHERE e.department_id = d.department_id(+);

是否有转换所有 (+) 语法变体的指南/教程?这个语法叫什么(所以我可以搜索谷歌)?

更好.. 是否有工具/脚本可以为我进行这种转换(首选免费)?某种优化器?我有大约 500 个这样的查询要移植..

该标准何时被淘汰?任何信息表示赞赏。

最佳答案

(+) 是 Oracle 特定的 ANSI-92 之前的 OUTER JOIN 语法,因为 ANSI-89 语法不提供对OUTER JOIN 支持的语法。

它是RIGHT 还是LEFT 取决于符号附加到哪个表和列引用。如果它在与 FROM 子句中的第一个表关联的列旁边指定 - 它是一个 RIGHT 连接。否则,它是一个 LEFT 连接。 This a good reference for anyone needing to know the difference between JOINs .

使用 ANSI-92 语法重写的第一个查询:

    SELECT e.lastname,
d.department_name
FROM EMPLOYEES e
RIGHT JOIN DEPARTMENTS d ON d.departmentid = e.departmentid

第二个查询使用 ANSI-92 语法重写:

   SELECT e.lastname,
d.department_name
FROM EMPLOYEES e
LEFT JOIN DEPARTMENTS d ON d.departmentid = e.departmentid

关于sql - Oracle(旧?)加入 - 用于转换的工具/脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425960/

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