SnowConvert AI - Oracle - Junções¶
Uma junção é uma consulta que combina linhas de duas ou mais tabelas, exibições ou exibições materializadas. O Oracle Database realiza uma junção sempre que várias tabelas aparecem na cláusula
FROMda consulta. (Referência da linguagem Oracle SQL JOINS)
Antijoin¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Um antijoin retorna linhas do lado esquerdo do predicado para as quais não há linhas correspondentes no lado direito do predicado. Ele retorna as linhas que não correspondem (NOT IN) à subconsulta no lado direito. A transformação antijoin não pode ser feita se a subconsulta estiver em um ramo
ORda cláusulaWHERE. (Referência da linguagem Oracle SQL Antijoint).
Nenhuma transformação especial é realizada para esse tipo de Join, pois o Snowflake suporta a mesma sintaxe.
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a cláusula Row Limiting. Você pode removê-lo para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Where Not em¶
Oracle¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
174 |
Ellen |
Abel |
166 |
Sundar |
Ande |
130 |
Mozhe |
Atkinson |
105 |
David |
Austin |
204 |
Hermann |
Baer |
167 |
Amit |
Banda |
172 |
Elizabeth |
Bates |
192 |
Sarah |
Bell |
151 |
David |
Bernstein |
129 |
Laura |
Bissot |
Snowflake¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
|---|---|---|
174 |
Ellen |
Abel |
166 |
Sundar |
Ande |
130 |
Mozhe |
Atkinson |
105 |
David |
Austin |
204 |
Hermann |
Baer |
167 |
Amit |
Banda |
172 |
Elizabeth |
Bates |
192 |
Sarah |
Bell |
151 |
David |
Bernstein |
129 |
Laura |
Bissot |
Where Not existe¶
Oracle¶
Resultado¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Treasury |
130 |
Imposto corporativo |
140 |
Controle e crédito |
150 |
Serviços ao anunciante |
160 |
Benefícios |
170 |
Fabricação |
180 |
Construção |
190 |
Contratante |
200 |
Operações |
210 |
Suporte IT |
Snowflake¶
Resultado¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
Treasury |
130 |
Imposto corporativo |
140 |
Controle e crédito |
150 |
Serviços ao anunciante |
160 |
Benefícios |
170 |
Fabricação |
180 |
Construção |
190 |
Contratante |
200 |
Operações |
210 |
Suporte IT |
Problemas conhecidos¶
1. Results ordering mismatch between languages¶
O resultado da consulta terá o mesmo conteúdo em ambos os mecanismos de banco de dados, mas a ordem poderá ser diferente se nenhuma cláusula Order By for definida na consulta.
Band Join¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Uma band join é um tipo especial de nonequijoin em que os valores-chave em um conjunto de dados devem estar dentro do intervalo especificado («banda») do segundo conjunto de dados. A mesma tabela pode servir tanto para o primeiro quanto para o segundo conjunto de dados. (Referência da linguagem Oracle SQL BandJoin)
Nesta seção, veremos como uma band join é executada no Snowflake, e o plano de execução é muito semelhante à versão aprimorada do Oracle.
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a cláusula Row Limiting. Você pode removê-lo para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Aviso
Se você migrar esse código sem criar tabelas, o conversor não conseguirá carregar as informações semânticas das colunas e será exibido um aviso sobre as operações aritméticas.
Caso básico de Band Join¶
Oracle¶
Resultado¶
SALARY COMPARISON |
|---|
Abel tem salário entre 100 a menos e 100 a mais do que Abel |
Abel tem salário entre 100 a menos e 100 a mais do que Cabrault |
Abel tem salário entre 100 a menos e 100 a mais que Raphaely |
Ande tem salário entre 100 a menos e 100 a mais do que de Ande |
Ande tem salário entre 100 a menos e 100 a mais do que Mavris |
Ande tem salário entre 100 a menos e 100 a mais do que Vollman |
Atkinson tem salário entre 100 a menos e 100 a mais de que Atkinson |
Atkinson tem salário entre 100 a menos e 100 a mais do que Baida |
Atkinson tem salário entre 100 a menos e 100 a mais que Gates |
Atkinson tem salário entre 100 a menos e 100 a mais que Geoni |
Snowflake¶
Resultado¶
SALARY COMPARISON |
|---|
Abel tem salário entre 100 a menos e 100 a mais do que Abel |
Abel tem salário entre 100 a menos e 100 a mais do que Cabrault |
Abel tem salário entre 100 a menos e 100 a mais que Raphaely |
Ande tem salário entre 100 a menos e 100 a mais do que de Ande |
Ande tem salário entre 100 a menos e 100 a mais do que Mavris |
Ande tem salário entre 100 a menos e 100 a mais do que Vollman |
Atkinson tem salário entre 100 a menos e 100 a mais de que Atkinson |
Atkinson tem salário entre 100 a menos e 100 a mais do que Baida |
Atkinson tem salário entre 100 a menos e 100 a mais que Gates |
Atkinson tem salário entre 100 a menos e 100 a mais que Geoni |
Aviso
A migração de algumas instruções SELECT sem as tabelas correspondentes poderia gerar SSC-EWI-OR0036: Problemas de resolução de tipos. Para evitar este aviso, inclua o CREATE TABLE dentro do arquivo.
Os resultados são os mesmos, tornando BAND JOIN funcional equivalente.
Plano de execução
Como informação extra, o que há de especial nas junções de bandas é o plano de execução.
A imagem a seguir mostra o plano de execução aprimorado (implementado desde o Oracle 12c) para a consulta de teste:

E na imagem a seguir, veremos o plano de execução no Snowflake:

Nota
O plano de execução no Snowflake é muito semelhante à versão otimizada do Oracle. A duração final e o desempenho da consulta serão afetados por muitos outros fatores e dependem totalmente de cada funcionalidade interna do DBMS.
Problemas conhecidos¶
1. Results ordering mismatch between languages¶
O resultado da consulta terá o mesmo conteúdo em ambos os mecanismos de banco de dados, mas a ordem poderá ser diferente se nenhuma cláusula Order By for definida na consulta.
EWIs relacionados¶
SSC-EWI-OR0036: Types resolution issues, the arithmetic operation may not behave correctly between string and date.
Produtos cartesianos¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Se duas tabelas em uma consulta de junção não tiverem condição de junção, o Oracle Database retornará o produto cartesiano delas. O Oracle combina cada linha de uma tabela com cada linha da outra. (Subseção Cartesian Products da referência da linguagem Oracle SQL)
O Oracle e o Snowflake também são compatíveis com a sintaxe ANSI de Cross Join, que tem o mesmo comportamento de um produto cartesiano.
Nenhuma transformação especial é realizada para esse tipo de Join, pois o Snowflake suporta a mesma sintaxe.
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a cláusula Row Limiting. Você pode removê-lo para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Sintaxe implícita¶
Oracle¶
Resultado 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
10 |
Administração |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
Envio |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Recursos Humanos |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Compras |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
Resultado 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Resultado 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
40 |
Recursos Humanos |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
10 |
Administração |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
50 |
Envio |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
30 |
Compras |
114 |
1700 |
Resultado 2¶
COUNT(*) |
|---|
2889 |
Sintaxe de Cross Join¶
Oracle¶
Resultado 1¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
10 |
Administração |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
Envio |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
Recursos Humanos |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
Compras |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
Marketing |
201 |
1800 |
Resultado 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
Problemas conhecidos¶
1. Results ordering mismatch between languages¶
O resultado da consulta terá o mesmo conteúdo em ambos os mecanismos de banco de dados, mas a ordem poderá ser diferente se nenhuma cláusula Order By for definida na consulta.
EWIs relacionados¶
Sem EWIs relacionados.
Equijoin¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
An equijoin is an implicit form of the join with a join condition containing an equality operator. For more information, see the Oracle Equijoin documentation.
Nenhuma transformação especial é realizada para esse tipo de Join, pois o Snowflake suporta a mesma sintaxe.
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a Row Limiting Clause. Você pode removê-lo para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Caso básico de Equijoin¶
Oracle¶
Resultado¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Vendas |
Ande |
SA_REP |
80 |
Vendas |
Atkinson |
ST_CLERK |
50 |
Envio |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Relações públicas |
Snowflake¶
Resultado¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Vendas |
Ande |
SA_REP |
80 |
Vendas |
Atkinson |
ST_CLERK |
50 |
Envio |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
Relações públicas |
Problemas conhecidos¶
1. Results ordering mismatch between languages¶
O resultado da consulta terá o mesmo conteúdo em ambos os mecanismos de banco de dados, mas a ordem poderá ser diferente se nenhuma cláusula Order By for definida na consulta.
EWIs relacionados¶
Sem EWIs relacionados.
Junção interna¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Uma junção interna (às vezes chamada de junção simples) é uma junção de duas ou mais tabelas que retorna apenas as linhas que satisfazem a condição de junção. (Subseção Inner Join da referência do Oracle SQL).
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a cláusula Row Limiting. Você pode remover essa cláusula para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Inner Join básico¶
Na cláusula Inner Join «INNER» é uma palavra-chave opcional, as consultas a seguir têm dois selects que recuperam o mesmo conjunto de dados.
Oracle¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
90 |
Executivo |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Executivo |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
Executivo |
100 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
60 |
IT |
103 |
1400 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
100 |
Finance |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
100 |
Finance |
108 |
1700 |
Snowflake¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
Executivo |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Executivo |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
90 |
Executivo |
100 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
60 |
IT |
103 |
1400 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
60 |
IT |
103 |
1400 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
100 |
Finance |
108 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
100 |
Finance |
108 |
1700 |
Inner Join com cláusula using¶
Oracle¶
Resultado¶
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
90 |
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
Executivo |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
Executivo |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
Executivo |
100 |
1700 |
|
60 |
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
IT |
103 |
1400 |
|
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
IT |
103 |
1400 |
|
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
IT |
103 |
1400 |
|
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
IT |
103 |
1400 |
|
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
IT |
103 |
1400 |
|
100 |
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
Finance |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
Finance |
108 |
1700 |
Snowflake¶
Resultado¶
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
90 |
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
Executivo |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
Executivo |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
Executivo |
100 |
1700 |
|
60 |
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
IT |
103 |
1400 |
|
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
IT |
103 |
1400 |
|
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
IT |
103 |
1400 |
|
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
IT |
103 |
1400 |
|
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
IT |
103 |
1400 |
|
100 |
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
Finance |
108 |
1700 |
|
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
Finance |
108 |
1700 |
Cross Inner Join¶
Oracle¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
110 |
Accounting |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Accounting |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
Accounting |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
110 |
Accounting |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
110 |
Accounting |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
110 |
Accounting |
205 |
1700 |
Snowflake¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
110 |
Accounting |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Accounting |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
110 |
Accounting |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
110 |
Accounting |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
110 |
Accounting |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
110 |
Accounting |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
110 |
Accounting |
205 |
1700 |
Natural Inner Join¶
Oracle¶
Resultado¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Executivo |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Executivo |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
Finance |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finance |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finance |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finance |
1700 |
Snowflake¶
Resultado¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Executivo |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Executivo |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
Finance |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finance |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finance |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finance |
1700 |
Cross Natural Join¶
Oracle¶
Resultado¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
Executivo |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
Executivo |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
Finance |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 00:00:00.000 |
FI_ACCOUNT |
8200 |
Finance |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 00:00:00.000 |
FI_ACCOUNT |
7700 |
Finance |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 00:00:00.000 |
FI_ACCOUNT |
7800 |
Finance |
1700 |
Snowflake¶
Resultado¶
MANAGER_ID |
DEPARTMENT_ID |
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
DEPARTMENT_NAME |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
Executivo |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
Executivo |
1700 |
|
103 |
60 |
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
IT |
1400 |
|
103 |
60 |
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
IT |
1400 |
|
103 |
60 |
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
IT |
1400 |
|
108 |
100 |
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
Finance |
1700 |
|
108 |
100 |
110 |
John |
Chen |
JCHEN |
515.124.4269 |
2005-09-28 |
FI_ACCOUNT |
8200.00 |
Finance |
1700 |
|
108 |
100 |
111 |
Ismael |
Sciarra |
ISCIARRA |
515.124.4369 |
2005-09-30 |
FI_ACCOUNT |
7700.00 |
Finance |
1700 |
|
108 |
100 |
112 |
Jose Manuel |
Urman |
JMURMAN |
515.124.4469 |
2006-03-07 |
FI_ACCOUNT |
7800.00 |
Finance |
1700 |
Natural Cross Join¶
Oracle¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
10 |
Administração |
200 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
100 |
Finance |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
90 |
Executivo |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
80 |
Vendas |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
70 |
Relações públicas |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
60 |
IT |
103 |
1400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
50 |
Envio |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
40 |
Recursos Humanos |
203 |
2400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
30 |
Compras |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
20 |
Marketing |
201 |
1800 |
Snowflake¶
Resultado¶
EMPLOYEE_ID |
FIRST_NAME |
LAST_NAME |
PHONE_NUMBER |
HIRE_DATE |
JOB_ID |
SALARY |
COMMISSION_PCT |
MANAGER_ID |
DEPARTMENT_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
80 |
Vendas |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
20 |
Marketing |
201 |
1800 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
60 |
IT |
103 |
1400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
70 |
Relações públicas |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
Executivo |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
30 |
Compras |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
10 |
Administração |
200 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
100 |
Finance |
108 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
50 |
Envio |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
40 |
Recursos Humanos |
203 |
2400 |
Problemas conhecidos¶
1. Results ordering mismatch between languages¶
O resultado da consulta terá o mesmo conteúdo em ambos os mecanismos de banco de dados, mas a ordem poderá ser diferente se nenhuma cláusula Order By for definida na consulta.
EWIs relacionados¶
Sem EWIs relacionados.
Junção externa¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Uma junção externa amplia o resultado de uma junção simples. Uma junção externa retorna todas as linhas que satisfazem a condição de junção e retorna algumas ou todas as linhas de uma tabela para as quais nenhuma linha da outra tabela satisfaz a condição de junção. (Subseção Outer Joins da Referência da linguagem Oracle SQL).
Sintaxe do Oracle ANSI¶
O Oracle também oferece suporte ao operador (+), que pode ser usado para fazer junções externas. Esse operador é adicionado a uma expressão de coluna na cláusula WHERE.
Sintaxe do Snowflake ANSI¶
Snowflake also supports the ANSI syntax for OUTER JOINS, just like Oracle. However, the behavior when using the (+) operator might be different depending on the usage. For more information, see the Snowflake JOIN documentation.
A gramática do Snowflake é uma das seguintes:
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Como o conjunto de resultados é muito grande, foi adicionada a cláusula Row Limiting. Você pode removê-lo para recuperar todo o conjunto de resultados.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Nota
Nos exemplos a seguir, as instruções inserts e alter foram executadas para distinguir melhor o resultado de cada tipo de JOIN:
1. ANSI syntax¶
O Snowflake é totalmente compatível com a sintaxe ANSI para SQL JOINS. O comportamento é o mesmo para ambos os mecanismos de banco de dados.
Left Outer Join On¶
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0 |
||
AR |
Argentina |
2 |
2 |
Américas |
AU |
Austrália |
3 |
3 |
Asia |
BE |
Bélgica |
1 |
1 |
Europe |
BR |
Brasil |
2 |
2 |
Américas |
CA |
Canadá |
2 |
2 |
Américas |
CH |
Suíça |
1 |
1 |
Europe |
CN |
China |
3 |
3 |
Asia |
DE |
Alemanha |
1 |
1 |
Europe |
DK |
Dinamarca |
1 |
1 |
Europe |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0.0000000000000000000 |
||
AR |
Argentina |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
AU |
Austrália |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
BE |
Bélgica |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
BR |
Brasil |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
CA |
Canadá |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
CH |
Suíça |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CN |
China |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
DE |
Alemanha |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
DK |
Dinamarca |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
Right Outer Join On¶
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Oceania |
||
ZW |
Zimbábue |
4 |
4 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4 |
4 |
Oriente Médio e Ásia |
US |
Estados Unidos da América |
2 |
2 |
Américas |
UK |
Reino Unido |
1 |
1 |
Europe |
SG |
Cingapura |
3 |
3 |
Asia |
NL |
Países Baixos |
1 |
1 |
Europe |
NG |
Nigéria |
4 |
4 |
Oriente Médio e Ásia |
MX |
México |
2 |
2 |
Américas |
ML |
Malásia |
3 |
3 |
Asia |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Oceania |
||
ZW |
Zimbábue |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
US |
Estados Unidos da América |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
UK |
Reino Unido |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
SG |
Cingapura |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
NL |
Países Baixos |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
NG |
Nigéria |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
MX |
México |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
ML |
Malásia |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
Full Outer Join On¶
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0 |
||
– |
5 |
Oceania |
||
EG |
Egito |
4 |
4 |
Oriente Médio e Ásia |
IL |
Israel |
4 |
4 |
Oriente Médio e Ásia |
KW |
Kuwait |
4 |
4 |
Oriente Médio e Ásia |
NG |
Nigéria |
4 |
4 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4 |
4 |
Oriente Médio e Ásia |
ZW |
Zimbábue |
4 |
4 |
Oriente Médio e Ásia |
BE |
Bélgica |
1 |
1 |
Europe |
CH |
Suíça |
1 |
1 |
Europe |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0.0000000000000000000 |
||
– |
5.0000000000000000000 |
Oceania |
||
EG |
Egito |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
IL |
Israel |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
KW |
Kuwait |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
NG |
Nigéria |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
ZW |
Zimbábue |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
BE |
Bélgica |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CH |
Suíça |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2. Natural Outer Join¶
Tanto o Oracle quanto o Snowflake suportam o Natural Outer Join e se comportam da mesma forma.
A NATURALJOIN é idêntica a uma JOIN explícita nas colunas comuns das duas tabelas, exceto que as colunas comuns são incluídas apenas uma vez na saída. (Uma junção natural pressupõe que colunas com o mesmo nome, mas em tabelas diferentes, contêm dados correspondentes.)(Referência da linguagem Snowflake SQL JOIN)
Natural Left Outer Join¶
Oracle¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
País desconhecido |
|
2 |
AR |
Argentina |
Américas |
3 |
AU |
Austrália |
Asia |
1 |
BE |
Bélgica |
Europe |
2 |
BR |
Brasil |
Américas |
2 |
CA |
Canadá |
Américas |
1 |
CH |
Suíça |
Europe |
3 |
CN |
China |
Asia |
1 |
DE |
Alemanha |
Europe |
1 |
DK |
Dinamarca |
Europe |
Snowflake¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
País desconhecido |
|
2.0000000000000000000 |
AR |
Argentina |
Américas |
3.0000000000000000000 |
AU |
Austrália |
Asia |
1.0000000000000000000 |
BE |
Bélgica |
Europe |
2.0000000000000000000 |
BR |
Brasil |
Américas |
2.0000000000000000000 |
CA |
Canadá |
Américas |
1.0000000000000000000 |
CH |
Suíça |
Europe |
3.0000000000000000000 |
CN |
China |
Asia |
1.0000000000000000000 |
DE |
Alemanha |
Europe |
1.0000000000000000000 |
DK |
Dinamarca |
Europe |
Natural Right Outer Join¶
Oracle¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5 |
Oceania |
||
4 |
ZW |
Zimbábue |
Oriente Médio e Ásia |
4 |
ZM |
Zâmbia |
Oriente Médio e Ásia |
2 |
US |
Estados Unidos da América |
Américas |
1 |
UK |
Reino Unido |
Europe |
3 |
SG |
Cingapura |
Asia |
1 |
NL |
Países Baixos |
Europe |
4 |
NG |
Nigéria |
Oriente Médio e Ásia |
2 |
MX |
México |
Américas |
3 |
ML |
Malásia |
Asia |
Snowflake¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5.0000000000000000000 |
Oceania |
||
4.0000000000000000000 |
ZW |
Zimbábue |
Oriente Médio e Ásia |
4.0000000000000000000 |
ZM |
Zâmbia |
Oriente Médio e Ásia |
2.0000000000000000000 |
US |
Estados Unidos da América |
Américas |
1.0000000000000000000 |
UK |
Reino Unido |
Europe |
3.0000000000000000000 |
SG |
Cingapura |
Asia |
1.0000000000000000000 |
NL |
Países Baixos |
Europe |
4.0000000000000000000 |
NG |
Nigéria |
Oriente Médio e Ásia |
2.0000000000000000000 |
MX |
México |
Américas |
3.0000000000000000000 |
ML |
Malásia |
Asia |
3. Basic Outer Join with USING¶
As colunas da tabela podem ser unidas usando a palavra-chave USING. Os resultados serão os mesmos de um OUTER JOIN básico com a palavra-chave ON.
Left Outer Join usando¶
Oracle¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
País desconhecido |
|
2 |
AR |
Argentina |
Américas |
3 |
AU |
Austrália |
Asia |
1 |
BE |
Bélgica |
Europe |
2 |
BR |
Brasil |
Américas |
2 |
CA |
Canadá |
Américas |
1 |
CH |
Suíça |
Europe |
3 |
CN |
China |
Asia |
1 |
DE |
Alemanha |
Europe |
1 |
DK |
Dinamarca |
Europe |
Snowflake¶
Resultado¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
País desconhecido |
|
2.0000000000000000000 |
AR |
Argentina |
Américas |
3.0000000000000000000 |
AU |
Austrália |
Asia |
1.0000000000000000000 |
BE |
Bélgica |
Europe |
2.0000000000000000000 |
BR |
Brasil |
Américas |
2.0000000000000000000 |
CA |
Canadá |
Américas |
1.0000000000000000000 |
CH |
Suíça |
Europe |
3.0000000000000000000 |
CN |
China |
Asia |
1.0000000000000000000 |
DE |
Alemanha |
Europe |
1.0000000000000000000 |
DK |
Dinamarca |
Europe |
4. (+) Operator¶
O Oracle e o Snowflake têm um operador (+) que também pode ser usado para junções externas. Em alguns casos, o Snowflake pode não funcionar corretamente ao usar esse operador.
Para obter mais informações sobre esse operador no Snowflake, verifique isto.
Left Outer Join com o operador (+)¶
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0 |
||
AR |
Argentina |
2 |
2 |
Américas |
AU |
Austrália |
3 |
3 |
Asia |
BE |
Bélgica |
1 |
1 |
Europe |
BR |
Brasil |
2 |
2 |
Américas |
CA |
Canadá |
2 |
2 |
Américas |
CH |
Suíça |
1 |
1 |
Europe |
CN |
China |
3 |
3 |
Asia |
DE |
Alemanha |
1 |
1 |
Europe |
DK |
Dinamarca |
1 |
1 |
Europe |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
País desconhecido |
0.0000000000000000000 |
||
AR |
Argentina |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
AU |
Austrália |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
BE |
Bélgica |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
BR |
Brasil |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
CA |
Canadá |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
CH |
Suíça |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
CN |
China |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
DE |
Alemanha |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
DK |
Dinamarca |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
Right Outer Join com o operador (+)¶
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
Oceania |
||
ZW |
Zimbábue |
4 |
4 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4 |
4 |
Oriente Médio e Ásia |
US |
Estados Unidos da América |
2 |
2 |
Américas |
UK |
Reino Unido |
1 |
1 |
Europe |
SG |
Cingapura |
3 |
3 |
Asia |
NL |
Países Baixos |
1 |
1 |
Europe |
NG |
Nigéria |
4 |
4 |
Oriente Médio e Ásia |
MX |
México |
2 |
2 |
Américas |
ML |
Malásia |
3 |
3 |
Asia |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
Oceania |
||
ZW |
Zimbábue |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
ZM |
Zâmbia |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
US |
Estados Unidos da América |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
UK |
Reino Unido |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
SG |
Cingapura |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
NL |
Países Baixos |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
NG |
Nigéria |
4.0000000000000000000 |
4.0000000000000000000 |
Oriente Médio e Ásia |
MX |
México |
2.0000000000000000000 |
2.0000000000000000000 |
Américas |
ML |
Malásia |
3.0000000000000000000 |
3.0000000000000000000 |
Asia |
Tabela única unida a várias tabelas com (+)¶
No Oracle, você pode unir uma única tabela a várias tabelas usando o operador (+); no entanto, o Snowflake não oferece suporte a isso. As consultas com esse tipo de junções externas serão alteradas para a sintaxe ANSI.
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
China |
||
CH |
Suíça |
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombaim |
||
CH |
Suíça |
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genebra |
1 |
Europe |
1300 |
9450 Cambia-cho |
6823 |
Hiroshima |
||
UK |
Reino Unido |
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
|
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
||
DE |
Alemanha |
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munique |
UK |
Reino Unido |
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
IT |
Itália |
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Roma |
Snowflake¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
China |
||
CH |
Suíça |
1.0000000000000000000 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
1.0000000000000000000 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombaim |
||
CH |
Suíça |
1.0000000000000000000 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genebra |
1.0000000000000000000 |
Europe |
1300 |
9450 Cambia-cho |
6823 |
Hiroshima |
||
UK |
Reino Unido |
1.0000000000000000000 |
Europe |
2400 |
8204 Arthur St |
Londres |
|
1.0000000000000000000 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
||
DE |
Alemanha |
1.0000000000000000000 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munique |
UK |
Reino Unido |
1.0000000000000000000 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
IT |
Itália |
1.0000000000000000000 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Roma |
Uso do operador (+) com uma coluna de uma tabela não unida e um valor que não é de uma coluna¶
No Oracle, você pode usar o operador (+) com uma coluna e uni-la a um valor que não seja uma coluna de outra tabela. O Snowflake também pode fazer isso, mas falhará se a tabela da coluna não tiver sido unida a outra tabela. Para resolver esse problema, o operador (+) é removido da consulta quando esse cenário ocorre e o resultado será o mesmo que no Oracle.
Oracle¶
Resultado¶
REGION_ID |
REGION_NAME |
|---|---|
2 |
Américas |
3 |
Asia |
Snowflake¶
Resultado¶
REGION_ID |
REGION_NAME |
|---|---|
2.0000000000000000000 |
Américas |
3.0000000000000000000 |
Asia |
Problemas conhecidos¶
Para todos os casos sem suporte, consulte os EWIs relacionados para obter recomendações e possíveis soluções alternativas.
1. Converted Outer Joins to ANSI syntax might reorder the columns¶
Quando uma consulta com uma junção externa não ANSI é convertida em uma junção externa ANSI, ela pode alterar a ordem das colunas na consulta convertida. Para corrigir esse problema, tente selecionar as colunas na ordem específica necessária.
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
China |
CN |
||||
CH |
Suíça |
1 |
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombaim |
Maharashtra |
IN |
|||
CH |
Suíça |
1 |
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genebra |
Genebra |
CH |
1 |
Europe |
1300 |
9450 Cambia-cho |
6823 |
Hiroshima |
JP |
||||
UK |
Reino Unido |
1 |
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
||
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
Distrito Federal, |
MX |
|||
DE |
Alemanha |
1 |
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munique |
Bavária |
DE |
UK |
Reino Unido |
1 |
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
IT |
Itália |
1 |
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Roma |
IT |
Snowflake¶
Resultado¶
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
China |
CN |
||||
1.0000000000000000000 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
CH |
Suíça |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombaim |
Maharashtra |
IN |
|||
1.0000000000000000000 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genebra |
Genebra |
CH |
CH |
Suíça |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
1300 |
9450 Cambia-cho |
6823 |
Hiroshima |
JP |
||||
1.0000000000000000000 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
UK |
Reino Unido |
1.0000000000000000000 |
||
1.0000000000000000000 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
Distrito Federal, |
MX |
|||
1.0000000000000000000 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munique |
Bavária |
DE |
DE |
Alemanha |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
UK |
Reino Unido |
1.0000000000000000000 |
1.0000000000000000000 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Roma |
IT |
IT |
Itália |
1.0000000000000000000 |
2. Outer joined between predicate with an interval with multiple tables¶
Predicados Between podem ser usado para OUTER JOINS não ANSI. No Oracle, as colunas dentro do intervalo podem ser unidas externamente, mesmo que venham de tabelas diferentes; no entanto, o Snowflake não oferece suporte a isso. Para esses casos, o predicado between será comentado.
Oracle¶
Resultado¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
Europe |
2000 |
40-5-12 Laogianggen |
190518 |
China |
CN |
||||
1 |
Europe |
3000 |
Murtenstrasse 921 |
3095 |
Bern |
BE |
CH |
|||
1 |
Europe |
2100 |
1298 Vileparle (E) |
490231 |
Bombaim |
Maharashtra |
IN |
|||
1 |
Europe |
2900 |
20 Rue des Corps-Saints |
1730 |
Genebra |
Genebra |
CH |
|||
1 |
Europe |
1300 |
9450 Cambia-cho |
6823 |
Hiroshima |
JP |
||||
1 |
Europe |
2400 |
8204 Arthur St |
Londres |
UK |
|||||
1 |
Europe |
3200 |
Mariano Escobedo 9991 |
11932 |
Mexico City |
Distrito Federal, |
MX |
|||
1 |
Europe |
2700 |
Schwanthalerstr. 7031 |
80925 |
Munique |
Bavária |
DE |
|||
1 |
Europe |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
Oxford |
Oxford |
UK |
|||
1 |
Europe |
1000 |
1297 Via Cola di Rie |
00989 |
Roma |
IT |
Snowflake¶
EWIs relacionados¶
SSC-EWI-OR0090: Junção externa não Apsi tem um predicado Between inválido.
Self Join¶
Nota
Algumas partes dos códigos de saída foram omitidas por motivos de clareza.
Descrição¶
Uma self join é uma junção de uma tabela com ela mesma. Essa tabela aparece duas vezes na cláusula
FROMe é seguida por aliases de tabela que qualificam os nomes de coluna na condição de junção. (Subseção Self Join da referência da linguagem Oracle SQL)
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Caso de Self Join básico¶
Oracle¶
Resultado¶
Funcionários e seus gerentes |
|---|
Rajs trabalha para Mourgos |
Raphaely trabalha para King |
Rogers trabalha para Kaufling |
Russell trabalha para King |
Snowflake¶
Resultado¶
Funcionários e seus gerentes |
|---|
Rajs trabalha para Mourgos |
Raphaely trabalha para King |
Rogers trabalha para Kaufling |
Russell trabalha para King |
Nota
Como provado anteriormente, self join no Oracle é funcionalmente equivalente ao Snowflake.
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
Sem EWIs relacionados.
Semijoin¶
Nota
Algumas partes do código de saída foram omitidas por motivos de clareza.
Descrição¶
Um semijoin retorna linhas que correspondem a uma subconsulta
EXISTSsem duplicar as linhas do lado esquerdo do predicado quando várias linhas do lado direito satisfazem os critérios da subconsulta. A transformação semijoin não pode ser feita se a subconsulta estiver em um ramoORda cláusulaWHERE. (Subseção Semijoin da referência da linguagem Oracle SQL)
Amostra de padrões da origem¶
Nota
A cláusula Order by foi adicionada porque a ordem dos resultados pode variar entre o Oracle e o Snowflake.
Nota
Verifique esta seção para configurar o banco de dados de amostra.
Caso básico de Semijoin¶
Oracle¶
Resultado¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Accounting |
205 |
1700 |
10 |
Administração |
200 |
1700 |
90 |
Executivo |
100 |
1700 |
100 |
Finance |
108 |
1700 |
40 |
Recursos Humanos |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Relações públicas |
204 |
2700 |
30 |
Compras |
114 |
1700 |
80 |
Vendas |
145 |
2500 |
50 |
Envio |
121 |
1500 |
Snowflake¶
Resultado¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
Accounting |
205 |
1700 |
10 |
Administração |
200 |
1700 |
90 |
Executivo |
100 |
1700 |
100 |
Finance |
108 |
1700 |
40 |
Recursos Humanos |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
Marketing |
201 |
1800 |
70 |
Relações públicas |
204 |
2700 |
30 |
Compras |
114 |
1700 |
80 |
Vendas |
145 |
2500 |
50 |
Envio |
121 |
1500 |
Nota
Como provado anteriormente, o semijoin no Oracle é funcionalmente equivalente ao Snowflake.
Problemas conhecidos¶
Não foram encontrados problemas.
EWIs relacionados¶
Sem EWIs relacionados.