将Oracle SQL Select转换为PostgreSQL select

编程入门 行业动态 更新时间:2024-10-28 10:29:12
本文介绍了将Oracle SQL Select转换为PostgreSQL select的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有以下SQL语句:

SELECT ABX.ABX_APO_NUMBER, COUNT(A1.PROCESS_MODE) AS NUM_PLANNING, COUNT(A2.PROCESS_MODE) AS NUM_SETUP, COUNT(A3.PROCESS_MODE) AS NUM_OUTPUT FROM ABX, USER_INSTANCE U, ACTIVE_PROCESS A1, ACTIVE_PROCESS A2, ACTIVE_PROCESS A3 WHERE U.ABX_APO_NUMBER (+) = ABX.ABX_APO_NUMBER AND A1.PROCESS_INSTANCE_NUMBER (+) = U.INSTANCE_NUMBER AND A1.PROCESS_MODE (+)= 'PLANNING' AND A2.PROCESS_INSTANCE_NUMBER (+) = U.INSTANCE_NUMBER AND A2.PROCESS_MODE (+) = 'SETUP' AND A3.PROCESS_INSTANCE_NUMBER (+) = U.INSTANCE_NUMBER AND A3.PROCESS_MODE (+) = 'OUTPUT' GROUP BY ABX.ABX_APO_NUMBER

(+)导致适合PG ...我可以只删除它们,这意味着同一件事吗? Postgres会理解的等效内容是什么?

The (+) is causing fits for PG... Can I just remove those and it will mean the same thing? What would be the equivalent that Postgres would understand?

推荐答案

以下是使用ANSI-92 JOIN语法重新编写的查询:

Here is your query re-written using ANSI-92 JOIN syntax:

SELECT a.abx_apo_number, COUNT(ap1.process_mode) AS NUM_PLANNING, COUNT(ap2.process_mode) AS NUM_SETUP, COUNT(ap3.process_mode) AS NUM_OUTPUT FROM ABX a LEFT JOIN USER_INSTANCE u ON u.abx_apo_number = a.abx_apo_number LEFT JOIN ACTIVE_PROCESS ap1 ON ap1.process_instance_number = u.instance_number AND ap1.process_mode = 'PLANNING' LEFT JOIN ACTIVE_PROCESS ap2 ON ap2.process_instance_number = u.instance_number AND ap2.process_mode = 'SETUP' LEFT JOIN ACTIVE_PROCESS ap3 ON ap3.process_instance_number = u.instance_number AND ap3.process_mode = 'OUTPUT' GROUP BY a.abx_apo_number

(+)是Oracle特定的LEFT OUTER JOIN语法.要删除它,将要求每个USER_INSTANCE.instance_number都必须具有以下三种过程模式的值:PLANNING,SETUP和OUTPUT-省略一个,并且abx_apo_number不会显示在输出中.

The (+) is Oracle specific LEFT OUTER JOIN syntax. To remove it, would require that each USER_INSTANCE.instance_number would have to have values for the process modes being all three: PLANNING, SETUP, and OUTPUT - omit one, and the abx_apo_number would not be displayed in the output.

更多推荐

将Oracle SQL Select转换为PostgreSQL select

本文发布于:2023-07-22 03:46:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1183864.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   SQL   Oracle   Select   select

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!