Как конвертировать (+) в соответствующее объединение в снежинку - PullRequest
0 голосов
/ 27 марта 2020

Может кто-нибудь сказать мне, как конвертировать Oracle (+) в качестве объединений в снежинках, есть ли какой-нибудь реальный способ конвертировать.

У меня очень сложный 1-строчный SQL скрипт, который нуждается в 30+ (+) операторы как объединения.

Может кто-нибудь, пожалуйста, помогите мне

1 Ответ

3 голосов
/ 27 марта 2020

Вы можете преобразовать синтаксис внешнего соединения Oracle в синтаксис ANSI. Так что он будет совместим со Snowflake и остальным миром (даже Oracle поддерживает синтаксис соединения ANSI). Вы должны переписать их вручную, но это не тяжелая работа:

Oracle:

SELECT d.department_name,
       e.employee_name      
FROM   departments d, employees e
WHERE  d.department_id = e.department_id (+) 
AND    d.department_id >= 30
ORDER BY d.department_name, e.employee_name;

ANSI

SELECT d.department_name,
       e.employee_name     
FROM   departments d
       LEFT OUTER JOIN employees e ON d.department_id = e.department_id
WHERE  d.department_id >= 30
ORDER BY d.department_name, e.employee_name;

Вы можете найти объяснения на этой странице (для левого / правого / внешнего соединения):

https://oracle-base.com/articles/misc/sql-for-beginners-joins#left -outer-join

...