SnowConvert AI - Oracle - 조인¶
조인은 둘 이상의 테이블, 뷰 또는 구체화된 뷰의 행을 결합하는 쿼리입니다. Oracle 데이터베이스는 쿼리의
FROM절에 여러 테이블이 나타날 때마다 조인 성능을 수행합니다. (Oracle SQL Language Reference JOINS)
안티 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
안티 조인은 조건자의 오른쪽에 해당하는 행이 없는 경우 조건자의 왼쪽에서 행을 반환합니다. 오른쪽의 하위 쿼리와 일치하지 않는 행을 반환합니다(NOT IN). 하위 쿼리가
WHERE절의OR분기에 있는 경우 안티 조인 변환을 수행할 수 없습니다. (Oracle SQL Language Reference 안티 조인).
이런 종류의 _Join_에 대해서는 특별한 변환이 수행되지 않는데, Snowflake는 동일한 구문을 지원하기 때문입니다.
샘플 소스 패턴¶
참고
결과 순서가 Oracle과 Snowflake에 따라 다를 수 있으므로 _Order by clause_이 추가되었습니다.
참고
결과 세트가 너무 커서 _Row Limiting Clause_가 추가되었습니다. 이를 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
Where Not In¶
Oracle¶
결과¶
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¶
결과¶
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 Exists¶
Oracle¶
결과¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
재무부 |
130 |
법인세 |
140 |
제어 및 크레딧 |
150 |
주주 서비스 |
160 |
이점 |
170 |
Manufacturing |
180 |
생성 |
190 |
계약 |
200 |
작업 |
210 |
IT 지원 |
Snowflake¶
결과¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|
120 |
재무부 |
130 |
법인세 |
140 |
제어 및 크레딧 |
150 |
주주 서비스 |
160 |
이점 |
170 |
Manufacturing |
180 |
생성 |
190 |
계약 |
200 |
작업 |
210 |
IT 지원 |
알려진 문제¶
1. Results ordering mismatch between languages¶
쿼리 결과는 두 데이터베이스 엔진에서 동일한 내용을 갖지만 쿼리에 Order By 절이 정의되지 않은 경우 순서가 다를 수 있습니다.
밴드 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
밴드 조인 은 한 데이터 세트의 키 값이 두 번째 데이터 세트의 지정된 범위(“밴드”)에 속해야 하는 특수한 유형의 논키조인입니다. 동일한 테이블이 첫 번째 및 두 번째 데이터 세트로 사용될 수 있습니다. (Oracle SQL Language Reference BandJoin)
이 섹션에서는 Snowflake에서 밴드 조인이 실행되는 방식과 실행 계획이 개선된 버전의 Oracle과 매우 유사하다는 점을 살펴봅니다.
샘플 소스 패턴¶
참고
주문 기준_ 절이 추가되었는데, 이는 Oracle과 Snowflake의 결과 순서가 다를 수 있기 때문입니다.
참고
결과 세트가 너무 커서 _Row Limiting Clause_가 추가되었습니다. 이를 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
경고
Create Table 없이 이 코드를 마이그레이션하면 변환기가 열의 의미 체계 정보를 로딩할 수 없으며 산술 작업에 경고가 표시됩니다.
기본 밴드 조인 사례¶
Oracle¶
결과¶
SALARY COMPARISON |
|---|
Abel의 급여는 Abel의 급여보다 100 적거나 100 더 많음 |
Abel의 급여는 Cambrault의 급여보다 100 적거나 100 더 많음 |
Abel의 급여는 Raphaelyl의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Ande의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Mavris의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Vollman의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Atkinson의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Baida의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Gates의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Geoni의 급여보다 100 적거나 100 더 많음 |
Snowflake¶
결과¶
SALARY COMPARISON |
|---|
Abel의 급여는 Abel의 급여보다 100 적거나 100 더 많음 |
Abel의 급여는 Cambrault의 급여보다 100 적거나 100 더 많음 |
Abel의 급여는 Raphaelyl의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Ande의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Mavris의 급여보다 100 적거나 100 더 많음 |
Ande의 급여는 Vollman의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Atkinson의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Baida의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Gates의 급여보다 100 적거나 100 더 많음 |
Atkinson의 급여는 Geoni의 급여보다 100 적거나 100 더 많음 |
경고
해당 테이블이 없는 일부 SELECT 문을 마이그레이션하면 SSC-EWI-OR0036: 유형 해석 문제가 생길 수 있습니다. 이 경고를 방지하려면 파일 내부에 CREATE TABLE을 포함하세요.
결과는 BAND JOIN 함수가 동일하게 작동합니다.
실행 계획
추가 정보로, 밴드 조인의 특별한 점은 실행 계획입니다.
다음 이미지는 테스트 쿼리에 대한 개선된 실행 계획 (Oracle 12c부터 구현됨)을 보여줍니다.

그리고 다음 이미지에서 Snowflake의 실행 계획을 볼 수 있습니다.

참고
Snowflake의 실행 계획은 Oracle의 최적화된 버전과 매우 유사합니다. 쿼리의 최종 기간과 성능은 다른 많은 요소의 영향을 받으며 각 DBMS 내부 기능에 전적으로 종속됩니다.
Known Issues¶
1. Results ordering mismatch between languages¶
쿼리 결과는 두 데이터베이스 엔진에서 동일한 내용을 갖지만 쿼리에 Order By 절이 정의되지 않은 경우 순서가 다를 수 있습니다.
관련 EWIs¶
SSC-EWI-OR0036: 유형 해석 문제로 인해 문자열과 날짜 사이에서 산술 연산이 올바르게 동작하지 않을 수 있습니다.
데카르트 곱¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
데이터베이스 쿼리의 두 테이블에 조인 조건이 없는 경우 Oracle 데이터베이스는 해당 데카르트 곱을 반환합니다. Oracle은 한 테이블의 각 행을 다른 테이블의 각 행과 결합합니다. (Oracle SQL Reference 데카르트 곱 하위 섹션)
Oracle 및 Snowflake는 데카르트 곱과 동일한 동작을 하는 ANSI 교차 조인 구문과도 호환됩니다.
이런 종류의 _Join_에 대해서는 특별한 변환이 수행되지 않는데, Snowflake는 동일한 구문을 지원하기 때문입니다.
샘플 소스 패턴¶
참고
결과 순서가 Oracle과 Snowflake에 따라 다를 수 있으므로 _Order by clause_이 추가되었습니다.
참고
결과 세트가 너무 커서 _Row Limiting Clause_가 추가되었습니다. 이를 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
암시적 구문¶
Oracle¶
결과 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 |
관리 |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
배송 |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
인적 리소스 |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
구매 |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
마케팅 |
201 |
1800 |
결과 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
결과 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 |
인적 리소스 |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
20 |
마케팅 |
201 |
1800 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
10 |
관리 |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
50 |
배송 |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 |
ST_MAN |
8200.00 |
100 |
50 |
30 |
구매 |
114 |
1700 |
결과 2¶
COUNT(*) |
|---|
2889 |
교차 조인 구문¶
Oracle¶
결과 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 |
관리 |
200 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
50 |
배송 |
121 |
1500 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
40 |
인적 리소스 |
203 |
2400 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
30 |
구매 |
114 |
1700 |
|
121 |
Adam |
Fripp |
AFRIPP |
650.123.2234 |
2005-04-10 00:00:00.000 |
ST_MAN |
8200 |
100 |
50 |
20 |
마케팅 |
201 |
1800 |
결과 2¶
COUNT(*) |
|---|
2889 |
Snowflake¶
알려진 문제¶
1. Results ordering mismatch between languages¶
쿼리 결과는 두 데이터베이스 엔진에서 동일한 내용을 갖지만 쿼리에 Order By 절이 정의되지 않은 경우 순서가 다를 수 있습니다.
관련 EWIs¶
관련 EWIs 없음.
등가 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
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.
이런 종류의 _Join_에 대해서는 특별한 변환이 수행되지 않는데, Snowflake는 동일한 구문을 지원하기 때문입니다.
샘플 소스 패턴¶
참고
결과 순서가 Oracle과 Snowflake에 따라 다를 수 있으므로 _Order by clause_이 추가되었습니다.
참고
결과 세트가 너무 크기 때문에 _Row Limiting Clause_이 추가되었습니다. 이를 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
기본 Equijoin 케이스¶
Oracle¶
결과¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
배송 |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
홍보 |
Snowflake¶
결과¶
LAST_NAME |
JOB_ID |
DEPARTMENT_ID |
DEPARTMENT_NAME |
|---|---|---|---|
Abel |
SA_REP |
80 |
Sales |
Ande |
SA_REP |
80 |
Sales |
Atkinson |
ST_CLERK |
50 |
배송 |
Austin |
IT_PROG |
60 |
IT |
Baer |
PR_REP |
70 |
홍보 |
알려진 문제¶
1. Results ordering mismatch between languages¶
쿼리 결과는 두 데이터베이스 엔진에서 동일한 내용을 갖지만 쿼리에 Order By 절이 정의되지 않은 경우 순서가 다를 수 있습니다.
관련 EWIs¶
관련 EWIs 없음.
내부 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
내부 조인(단순 조인이라고도 함)은 조인 조건을 충족하는 행만 반환하는 2개 이상의 테이블에 대한 조인입니다. (Oracle SQL 내부 조인 하위 섹션).
샘플 소스 패턴¶
참고
주문 기준_ 절이 추가되었는데, 이는 Oracle과 Snowflake의 결과 순서가 다를 수 있기 때문입니다.
참고
결과 세트가 너무 커서 _Row Limiting Clause_가 추가되었습니다. 이 절을 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
기본 내부 조인¶
내부 조인 절에서 “INNER”는 선택적 키워드이며, 다음 쿼리에는 동일한 데이터 세트를 검색하는 2개의 선택 항목이 있습니다.
Oracle¶
결과¶
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 |
실행 |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
실행 |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
90 |
실행 |
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¶
결과¶
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 |
실행 |
100 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
90 |
실행 |
100 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
90 |
실행 |
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 |
절을 사용하여 내부 조인하기¶
Oracle¶
결과¶
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 |
실행 |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
실행 |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
실행 |
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¶
결과¶
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 |
실행 |
100 |
1700 |
||
90 |
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
실행 |
100 |
1700 |
|
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
실행 |
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 |
교차 내부 조인¶
Oracle¶
결과¶
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 |
회계 |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
회계 |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
100 |
90 |
110 |
회계 |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 00:00:00.000 |
IT_PROG |
9000 |
102 |
60 |
110 |
회계 |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 00:00:00.000 |
IT_PROG |
6000 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 00:00:00.000 |
IT_PROG |
4800 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 00:00:00.000 |
IT_PROG |
4200 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 00:00:00.000 |
FI_MGR |
12008 |
101 |
100 |
110 |
회계 |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 00:00:00.000 |
FI_ACCOUNT |
9000 |
108 |
100 |
110 |
회계 |
205 |
1700 |
Snowflake¶
결과¶
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 |
회계 |
205 |
1700 |
||
101 |
Neena |
Kochhar |
NKOCHHAR |
515.123.4568 |
2005-09-21 |
AD_VP |
17000.00 |
100 |
90 |
110 |
회계 |
205 |
1700 |
|
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
100 |
90 |
110 |
회계 |
205 |
1700 |
|
103 |
Alexander |
Hunold |
AHUNOLD |
590.423.4567 |
2006-01-03 |
IT_PROG |
9000.00 |
102 |
60 |
110 |
회계 |
205 |
1700 |
|
104 |
Bruce |
Ernst |
BERNST |
590.423.4568 |
2007-05-21 |
IT_PROG |
6000.00 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
105 |
David |
Austin |
DAUSTIN |
590.423.4569 |
2005-06-25 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
106 |
Valli |
Pataballa |
VPATABAL |
590.423.4560 |
2006-02-05 |
IT_PROG |
4800.00 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
107 |
Diana |
Lorentz |
DLORENTZ |
590.423.5567 |
2007-02-07 |
IT_PROG |
4200.00 |
103 |
60 |
110 |
회계 |
205 |
1700 |
|
108 |
Nancy |
Greenberg |
NGREENBE |
515.124.4569 |
2002-08-17 |
FI_MGR |
12008.00 |
101 |
100 |
110 |
회계 |
205 |
1700 |
|
109 |
Daniel |
Faviet |
DFAVIET |
515.124.4169 |
2002-08-16 |
FI_ACCOUNT |
9000.00 |
108 |
100 |
110 |
회계 |
205 |
1700 |
자연 내부 조인¶
Oracle¶
결과¶
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 |
실행 |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
실행 |
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¶
결과¶
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 |
실행 |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
실행 |
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 |
교차 자연 조인¶
Oracle¶
결과¶
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 |
실행 |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 00:00:00.000 |
AD_VP |
17000 |
실행 |
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¶
결과¶
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 |
실행 |
1700 |
|
100 |
90 |
102 |
Lex |
De Haan |
LDEHAAN |
515.123.4569 |
2001-01-13 |
AD_VP |
17000.00 |
실행 |
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 |
자연 교차 조인¶
Oracle¶
결과¶
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 |
관리 |
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 |
실행 |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
80 |
Sales |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
70 |
홍보 |
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 |
배송 |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
40 |
인적 리소스 |
203 |
2400 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
30 |
구매 |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 00:00:00.000 |
AD_PRES |
24000 |
90 |
20 |
마케팅 |
201 |
1800 |
Snowflake¶
결과¶
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 |
Sales |
145 |
2500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
20 |
마케팅 |
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 |
홍보 |
204 |
2700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
90 |
실행 |
100 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
30 |
구매 |
114 |
1700 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
10 |
관리 |
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 |
배송 |
121 |
1500 |
||
100 |
Steven |
King |
SKING |
515.123.4567 |
2003-06-17 |
AD_PRES |
24000.00 |
90 |
40 |
인적 리소스 |
203 |
2400 |
알려진 문제¶
1. Results ordering mismatch between languages¶
쿼리 결과는 두 데이터베이스 엔진에서 동일한 내용을 갖지만 쿼리에 Order By 절이 정의되지 않은 경우 순서가 다를 수 있습니다.
관련 EWIs¶
관련 EWIs 없음.
외부 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
외부 조인은 단순 조인의 결과를 확장합니다. 외부 조인은 조인 조건을 충족하는 모든 행을 반환하고 다른 테이블에서 조인 조건을 충족하는 행이 없는 한 테이블의 일부 또는 모든 행을 반환합니다. (Oracle SQL Language Reference 외부 조인 하위 섹션).
Oracle ANSI 구문¶
Oracle은 또한 외부 조인을 수행하는 데 사용할 수 있는 (+) 연산자를 지원합니다. 이 연산자는 WHERE 절의 열 식에 추가됩니다.
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.
Snowflake 문법은 다음 중 하나입니다.
샘플 소스 패턴¶
참고
주문 기준_ 절이 추가되었는데, 이는 Oracle과 Snowflake의 결과 순서가 다를 수 있기 때문입니다.
참고
결과 세트가 너무 커서 _Row Limiting Clause_가 추가되었습니다. 이를 제거하면 전체 결과 세트를 검색할 수 있습니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
참고
다음 예제에서는 JOIN 의 각 종류에 대한 결과를 더 잘 구분하기 위해 이러한 삽입 및 변경 문을 실행했습니다.
1. ANSI syntax¶
Snowflake는 SQL JOINS 에 대해 ANSI 구문을 완벽하게 지원합니다. 동작은 두 데이터베이스 엔진 모두 동일합니다.
왼쪽 외부 조인 위치¶
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0 |
||
AR |
아르헨티나 |
2 |
2 |
아메리카 |
AU |
오스트레일리아 |
3 |
3 |
아시아 |
BE |
벨기에 |
1 |
1 |
유럽 |
BR |
브라질 |
2 |
2 |
아메리카 |
CA |
캐나다 |
2 |
2 |
아메리카 |
CH |
스위스 |
1 |
1 |
유럽 |
CN |
중국 |
3 |
3 |
아시아 |
DE |
독일 |
1 |
1 |
유럽 |
DK |
덴마크 |
1 |
1 |
유럽 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0.0000000000000000000 |
||
AR |
아르헨티나 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
AU |
오스트레일리아 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
BE |
벨기에 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
BR |
브라질 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
CA |
캐나다 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
CH |
스위스 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
CN |
중국 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
DE |
독일 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
DK |
덴마크 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
오른쪽 외부 조인 위치¶
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
오세아니아 |
||
ZW |
짐바브웨 |
4 |
4 |
중동 및 아프리카 |
ZM |
잠비아 |
4 |
4 |
중동 및 아프리카 |
US |
미국 |
2 |
2 |
아메리카 |
UK |
영국 |
1 |
1 |
유럽 |
SG |
싱가포르 |
3 |
3 |
아시아 |
NL |
네덜란드 |
1 |
1 |
유럽 |
NG |
나이지리아 |
4 |
4 |
중동 및 아프리카 |
MX |
멕시코 |
2 |
2 |
아메리카 |
ML |
말레이시아 |
3 |
3 |
아시아 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
오세아니아 |
||
ZW |
짐바브웨 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
ZM |
잠비아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
US |
미국 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
UK |
영국 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
SG |
싱가포르 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
NL |
네덜란드 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
NG |
나이지리아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
MX |
멕시코 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
ML |
말레이시아 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
전체 외부 조인 위치¶
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0 |
||
– |
5 |
오세아니아 |
||
EG |
이집트 |
4 |
4 |
중동 및 아프리카 |
IL |
이스라엘 |
4 |
4 |
중동 및 아프리카 |
KW |
쿠웨이트 |
4 |
4 |
중동 및 아프리카 |
NG |
나이지리아 |
4 |
4 |
중동 및 아프리카 |
ZM |
잠비아 |
4 |
4 |
중동 및 아프리카 |
ZW |
짐바브웨 |
4 |
4 |
중동 및 아프리카 |
BE |
벨기에 |
1 |
1 |
유럽 |
CH |
스위스 |
1 |
1 |
유럽 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0.0000000000000000000 |
||
– |
5.0000000000000000000 |
오세아니아 |
||
EG |
이집트 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
IL |
이스라엘 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
KW |
쿠웨이트 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
NG |
나이지리아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
ZM |
잠비아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
ZW |
짐바브웨 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
BE |
벨기에 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
CH |
스위스 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
2. Natural Outer Join¶
Oracle과 Snowflake는 모두 자연 외부 조인을 지원하며 동일한 방식으로 작동합니다.
NATURAL JOIN 은 공통 열이 출력에 한 번만 포함된다는 점을 제외하고는, 두 테이블의 공통 열에 대한 명시적 JOIN 과 동일합니다. (자연 조인은 이름이 같지만 서로 다른 테이블에 있는 열에 해당 데이터가 포함되어 있다고 가정합니다.)(Snowflake SQL Language Reference JOIN)
자연 왼쪽 외부 조인¶
Oracle¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
알 수 없는 국가 |
|
2 |
AR |
아르헨티나 |
아메리카 |
3 |
AU |
오스트레일리아 |
아시아 |
1 |
BE |
벨기에 |
유럽 |
2 |
BR |
브라질 |
아메리카 |
2 |
CA |
캐나다 |
아메리카 |
1 |
CH |
스위스 |
유럽 |
3 |
CN |
중국 |
아시아 |
1 |
DE |
독일 |
유럽 |
1 |
DK |
덴마크 |
유럽 |
Snowflake¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
알 수 없는 국가 |
|
2.0000000000000000000 |
AR |
아르헨티나 |
아메리카 |
3.0000000000000000000 |
AU |
오스트레일리아 |
아시아 |
1.0000000000000000000 |
BE |
벨기에 |
유럽 |
2.0000000000000000000 |
BR |
브라질 |
아메리카 |
2.0000000000000000000 |
CA |
캐나다 |
아메리카 |
1.0000000000000000000 |
CH |
스위스 |
유럽 |
3.0000000000000000000 |
CN |
중국 |
아시아 |
1.0000000000000000000 |
DE |
독일 |
유럽 |
1.0000000000000000000 |
DK |
덴마크 |
유럽 |
자연 오른쪽 외부 조인¶
Oracle¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5 |
오세아니아 |
||
4 |
ZW |
짐바브웨 |
중동 및 아프리카 |
4 |
ZM |
잠비아 |
중동 및 아프리카 |
2 |
US |
미국 |
아메리카 |
1 |
UK |
영국 |
유럽 |
3 |
SG |
싱가포르 |
아시아 |
1 |
NL |
네덜란드 |
유럽 |
4 |
NG |
나이지리아 |
중동 및 아프리카 |
2 |
MX |
멕시코 |
아메리카 |
3 |
ML |
말레이시아 |
아시아 |
Snowflake¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
5.0000000000000000000 |
오세아니아 |
||
4.0000000000000000000 |
ZW |
짐바브웨 |
중동 및 아프리카 |
4.0000000000000000000 |
ZM |
잠비아 |
중동 및 아프리카 |
2.0000000000000000000 |
US |
미국 |
아메리카 |
1.0000000000000000000 |
UK |
영국 |
유럽 |
3.0000000000000000000 |
SG |
싱가포르 |
아시아 |
1.0000000000000000000 |
NL |
네덜란드 |
유럽 |
4.0000000000000000000 |
NG |
나이지리아 |
중동 및 아프리카 |
2.0000000000000000000 |
MX |
멕시코 |
아메리카 |
3.0000000000000000000 |
ML |
말레이시아 |
아시아 |
3. Basic Outer Join with USING¶
USING 키워드를 사용하여 테이블 열을 조인할 수 있습니다. 결과는 ON 키워드가 포함된 기본 OUTER JOIN 과 동일합니다.
다음을 사용한 왼쪽 외부 조인¶
Oracle¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0 |
– |
알 수 없는 국가 |
|
2 |
AR |
아르헨티나 |
아메리카 |
3 |
AU |
오스트레일리아 |
아시아 |
1 |
BE |
벨기에 |
유럽 |
2 |
BR |
브라질 |
아메리카 |
2 |
CA |
캐나다 |
아메리카 |
1 |
CH |
스위스 |
유럽 |
3 |
CN |
중국 |
아시아 |
1 |
DE |
독일 |
유럽 |
1 |
DK |
덴마크 |
유럽 |
Snowflake¶
결과¶
REGION_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_NAME |
|---|---|---|---|
0.0000000000000000000 |
– |
알 수 없는 국가 |
|
2.0000000000000000000 |
AR |
아르헨티나 |
아메리카 |
3.0000000000000000000 |
AU |
오스트레일리아 |
아시아 |
1.0000000000000000000 |
BE |
벨기에 |
유럽 |
2.0000000000000000000 |
BR |
브라질 |
아메리카 |
2.0000000000000000000 |
CA |
캐나다 |
아메리카 |
1.0000000000000000000 |
CH |
스위스 |
유럽 |
3.0000000000000000000 |
CN |
중국 |
아시아 |
1.0000000000000000000 |
DE |
독일 |
유럽 |
1.0000000000000000000 |
DK |
덴마크 |
유럽 |
4. (+) Operator¶
Oracle과 Snowflake에는 외부 조인에도 사용할 수 있는 (+) 연산자가 있습니다. 경우에 따라 이 연산자를 사용할 때 Snowflake가 올바르게 작동하지 않을 수 있습니다.
Snowflake의 이 연산자에 대한 자세한 내용은 여기 에서 확인할 수 있습니다.
(+) 연산자를 사용한 왼쪽 외부 조인¶
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0 |
||
AR |
아르헨티나 |
2 |
2 |
아메리카 |
AU |
오스트레일리아 |
3 |
3 |
아시아 |
BE |
벨기에 |
1 |
1 |
유럽 |
BR |
브라질 |
2 |
2 |
아메리카 |
CA |
캐나다 |
2 |
2 |
아메리카 |
CH |
스위스 |
1 |
1 |
유럽 |
CN |
중국 |
3 |
3 |
아시아 |
DE |
독일 |
1 |
1 |
유럽 |
DK |
덴마크 |
1 |
1 |
유럽 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
알 수 없는 국가 |
0.0000000000000000000 |
||
AR |
아르헨티나 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
AU |
오스트레일리아 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
BE |
벨기에 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
BR |
브라질 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
CA |
캐나다 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
CH |
스위스 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
CN |
중국 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
DE |
독일 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
DK |
덴마크 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
(+) 연산자를 사용한 오른쪽 외부 조인¶
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5 |
오세아니아 |
||
ZW |
짐바브웨 |
4 |
4 |
중동 및 아프리카 |
ZM |
잠비아 |
4 |
4 |
중동 및 아프리카 |
US |
미국 |
2 |
2 |
아메리카 |
UK |
영국 |
1 |
1 |
유럽 |
SG |
싱가포르 |
3 |
3 |
아시아 |
NL |
네덜란드 |
1 |
1 |
유럽 |
NG |
나이지리아 |
4 |
4 |
중동 및 아프리카 |
MX |
멕시코 |
2 |
2 |
아메리카 |
ML |
말레이시아 |
3 |
3 |
아시아 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
|---|---|---|---|---|
– |
5.0000000000000000000 |
오세아니아 |
||
ZW |
짐바브웨 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
ZM |
잠비아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
US |
미국 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
UK |
영국 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
SG |
싱가포르 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
NL |
네덜란드 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
NG |
나이지리아 |
4.0000000000000000000 |
4.0000000000000000000 |
중동 및 아프리카 |
MX |
멕시코 |
2.0000000000000000000 |
2.0000000000000000000 |
아메리카 |
ML |
말레이시아 |
3.0000000000000000000 |
3.0000000000000000000 |
아시아 |
(+)를 사용하여 여러 테이블과 조인된 단일 테이블¶
Oracle에서는 (+) 연산자를 사용하여 단일 테이블을 여러 테이블과 조인할 수 있지만, Snowflake에서는 이를 지원하지 않습니다. 이러한 외부 조인을 사용하는 쿼리는ANSI구문으로 변경됩니다.
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1 |
유럽 |
2000 |
40-5-12 Laogianggen |
190518 |
베이징 |
||
CH |
스위스 |
1 |
유럽 |
3000 |
Murtenstrasse 921 |
3095 |
베른 |
1 |
유럽 |
2100 |
1298 Vileparle (E) |
490231 |
봄베이 |
||
CH |
스위스 |
1 |
유럽 |
2900 |
20 Rue des Corps-Saints |
1730 |
제네바 |
1 |
유럽 |
1300 |
9450 Kamiya-cho |
6823 |
히로시마 |
||
UK |
영국 |
1 |
유럽 |
2400 |
8204 Arthur St |
런던 |
|
1 |
유럽 |
3200 |
Mariano Escobedo 9991 |
11932 |
멕시코 시티 |
||
DE |
독일 |
1 |
유럽 |
2700 |
Schwanthalerstr. 7031 |
80925 |
뮌헨 |
UK |
영국 |
1 |
유럽 |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
옥스퍼드 |
IT |
이탈리아 |
1 |
유럽 |
1000 |
1297 Via Cola di Rie |
00989 |
로마 |
Snowflake¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
유럽 |
2000 |
40-5-12 Laogianggen |
190518 |
베이징 |
||
CH |
스위스 |
1.0000000000000000000 |
유럽 |
3000 |
Murtenstrasse 921 |
3095 |
베른 |
1.0000000000000000000 |
유럽 |
2100 |
1298 Vileparle (E) |
490231 |
봄베이 |
||
CH |
스위스 |
1.0000000000000000000 |
유럽 |
2900 |
20 Rue des Corps-Saints |
1730 |
제네바 |
1.0000000000000000000 |
유럽 |
1300 |
9450 Kamiya-cho |
6823 |
히로시마 |
||
UK |
영국 |
1.0000000000000000000 |
유럽 |
2400 |
8204 Arthur St |
런던 |
|
1.0000000000000000000 |
유럽 |
3200 |
Mariano Escobedo 9991 |
11932 |
멕시코 시티 |
||
DE |
독일 |
1.0000000000000000000 |
유럽 |
2700 |
Schwanthalerstr. 7031 |
80925 |
뮌헨 |
UK |
영국 |
1.0000000000000000000 |
유럽 |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
옥스퍼드 |
IT |
이탈리아 |
1.0000000000000000000 |
유럽 |
1000 |
1297 Via Cola di Rie |
00989 |
로마 |
조인되지 않은 테이블의 열과 열이 아닌 값에 (+) 연산자 사용¶
Oracle에서는 열에 (+) 연산자를 사용하여 다른 테이블의 열이 아닌 값과 조인할 수 있습니다. Snowflake도 이 작업을 수행할 수 있지만 열의 테이블이 다른 테이블과 조인되지 않은 경우 실패합니다. 이 문제를 해결하기 위해 이 시나리오가 발생하면 쿼리에서 (+) 연산자가 제거되며 결과는 Oracle에서와 동일합니다.
Oracle¶
결과¶
REGION_ID |
REGION_NAME |
|---|---|
2 |
아메리카 |
3 |
아시아 |
Snowflake¶
결과¶
REGION_ID |
REGION_NAME |
|---|---|
2.0000000000000000000 |
아메리카 |
3.0000000000000000000 |
아시아 |
알려진 문제¶
지원되지 않는 모든 사례에 대해서는 관련 EWIs 에서 권장 사항과 가능한 해결 방법을 확인하십시오.
1. Converted Outer Joins to ANSI syntax might reorder the columns¶
ANSI 외부 조인이 아닌 쿼리가 ANSI 외부 조인으로 변환되는 경우 변환된 쿼리의 열 순서가 변경될 수 있습니다. 이 문제를 해결하려면 특정 순서대로 열을 선택해 보십시오.
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
유럽 |
2000 |
40-5-12 Laogianggen |
190518 |
베이징 |
CN |
||||
CH |
스위스 |
1 |
1 |
유럽 |
3000 |
Murtenstrasse 921 |
3095 |
베른 |
BE |
CH |
1 |
유럽 |
2100 |
1298 Vileparle (E) |
490231 |
봄베이 |
마하라시트라 |
IN |
|||
CH |
스위스 |
1 |
1 |
유럽 |
2900 |
20 Rue des Corps-Saints |
1730 |
제네바 |
제네바 |
CH |
1 |
유럽 |
1300 |
9450 Kamiya-cho |
6823 |
히로시마 |
JP |
||||
UK |
영국 |
1 |
1 |
유럽 |
2400 |
8204 Arthur St |
런던 |
UK |
||
1 |
유럽 |
3200 |
Mariano Escobedo 9991 |
11932 |
멕시코 시티 |
연방구, |
MX |
|||
DE |
독일 |
1 |
1 |
유럽 |
2700 |
Schwanthalerstr. 7031 |
80925 |
뮌헨 |
바이에른 |
DE |
UK |
영국 |
1 |
1 |
유럽 |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
옥스퍼드 |
옥스퍼드 |
UK |
IT |
이탈리아 |
1 |
1 |
유럽 |
1000 |
1297 Via Cola di Rie |
00989 |
로마 |
IT |
Snowflake¶
결과¶
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1.0000000000000000000 |
유럽 |
2000 |
40-5-12 Laogianggen |
190518 |
베이징 |
CN |
||||
1.0000000000000000000 |
유럽 |
3000 |
Murtenstrasse 921 |
3095 |
베른 |
BE |
CH |
CH |
스위스 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
2100 |
1298 Vileparle (E) |
490231 |
봄베이 |
마하라시트라 |
IN |
|||
1.0000000000000000000 |
유럽 |
2900 |
20 Rue des Corps-Saints |
1730 |
제네바 |
제네바 |
CH |
CH |
스위스 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
1300 |
9450 Kamiya-cho |
6823 |
히로시마 |
JP |
||||
1.0000000000000000000 |
유럽 |
2400 |
8204 Arthur St |
런던 |
UK |
UK |
영국 |
1.0000000000000000000 |
||
1.0000000000000000000 |
유럽 |
3200 |
Mariano Escobedo 9991 |
11932 |
멕시코 시티 |
연방구, |
MX |
|||
1.0000000000000000000 |
유럽 |
2700 |
Schwanthalerstr. 7031 |
80925 |
뮌헨 |
바이에른 |
DE |
DE |
독일 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
옥스퍼드 |
옥스퍼드 |
UK |
UK |
영국 |
1.0000000000000000000 |
1.0000000000000000000 |
유럽 |
1000 |
1297 Via Cola di Rie |
00989 |
로마 |
IT |
IT |
이탈리아 |
1.0000000000000000000 |
2. Outer joined between predicate with an interval with multiple tables¶
between 조건자는 비 ANSI OUTER JOINS 에 사용할 수 있습니다. Oracle에서는 간격 내부의 열이 다른 테이블에 있더라도 외부 조인이 가능하지만, Snowflake는 이를 지원하지 않습니다. 이러한 경우 between 조건자는 설명이 생략됩니다.
Oracle¶
결과¶
COUNTRY_ID |
COUNTRY_NAME |
REGION_ID |
REGION_ID |
REGION_NAME |
LOCATION_ID |
STREET_ADDRESS |
POSTAL_CODE |
CITY |
STATE_PROVINCE |
COUNTRY_ID |
|---|---|---|---|---|---|---|---|---|---|---|
1 |
유럽 |
2000 |
40-5-12 Laogianggen |
190518 |
베이징 |
CN |
||||
1 |
유럽 |
3000 |
Murtenstrasse 921 |
3095 |
베른 |
BE |
CH |
|||
1 |
유럽 |
2100 |
1298 Vileparle (E) |
490231 |
봄베이 |
마하라시트라 |
IN |
|||
1 |
유럽 |
2900 |
20 Rue des Corps-Saints |
1730 |
제네바 |
제네바 |
CH |
|||
1 |
유럽 |
1300 |
9450 Kamiya-cho |
6823 |
히로시마 |
JP |
||||
1 |
유럽 |
2400 |
8204 Arthur St |
런던 |
UK |
|||||
1 |
유럽 |
3200 |
Mariano Escobedo 9991 |
11932 |
멕시코 시티 |
연방구, |
MX |
|||
1 |
유럽 |
2700 |
Schwanthalerstr. 7031 |
80925 |
뮌헨 |
바이에른 |
DE |
|||
1 |
유럽 |
2500 |
Magdalen Centre, The Oxford Science Park |
OX9 9ZB |
옥스퍼드 |
옥스퍼드 |
UK |
|||
1 |
유럽 |
1000 |
1297 Via Cola di Rie |
00989 |
로마 |
IT |
Snowflake¶
관련 EWIs¶
SSC-EWI-OR0090: 비Ansi 외부 조인에 유효하지 않은 Between 조건자가 있습니다.
셀프 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
셀프 조인은 테이블을 테이블 자체에 조인하는 것입니다. 이 테이블은
FROM절에 두 번 나타나며 그 뒤에 조인 조건에서 열 이름을 한정하는 테이블 별칭이 나옵니다. (Oracle SQL Language Reference 셀프 조인 하위 섹션)
샘플 소스 패턴¶
참고
주문 기준_ 절이 추가되었는데, 이는 Oracle과 Snowflake의 결과 순서가 다를 수 있기 때문입니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
기본 셀프 조인 사례¶
Oracle¶
결과¶
직원 및 해당 관리자 |
|---|
Rajs는 Mourgos에서 근무함 |
Raphaely는 King에서 근무함 |
Rogers는 Kaufling에서 근무함 |
Russell은 King에서 근무함 |
Snowflake¶
결과¶
직원 및 해당 관리자 |
|---|
Rajs는 Mourgos에서 근무함 |
Raphaely는 King에서 근무함 |
Rogers는 Kaufling에서 근무함 |
Russell은 King에서 근무함 |
참고
앞서 증명했듯이 Oracle의 self join 은 기능적으로 Snowflake와 동일합니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
관련 EWIs 없음.
세미 조인¶
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
설명¶
세미 조인은 오른쪽의 여러 행이 하위 쿼리의 조건을 만족하는 경우 조건자의 왼쪽에서 행을 중복하지 않고
EXISTS하위 쿼리와 일치하는 행을 반환합니다. 하위 쿼리가WHERE절의OR분기에 있는 경우 세미 조인 변환을 수행할 수 없습니다. (Oracle SQL Language Reference 세미 조인 하위 섹션)
샘플 소스 패턴¶
참고
주문 기준_ 절이 추가되었는데, 이는 Oracle과 Snowflake의 결과 순서가 다를 수 있기 때문입니다.
참고
샘플 데이터베이스를 설정하려면 섹션을 확인하십시오.
기본 세미 조인 사례¶
Oracle¶
결과¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
회계 |
205 |
1700 |
10 |
관리 |
200 |
1700 |
90 |
실행 |
100 |
1700 |
100 |
Finance |
108 |
1700 |
40 |
인적 리소스 |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
마케팅 |
201 |
1800 |
70 |
홍보 |
204 |
2700 |
30 |
구매 |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
배송 |
121 |
1500 |
Snowflake¶
결과¶
DEPARTMENT_ID |
DEPARTMENT_NAME |
MANAGER_ID |
LOCATION_ID |
|---|---|---|---|
110 |
회계 |
205 |
1700 |
10 |
관리 |
200 |
1700 |
90 |
실행 |
100 |
1700 |
100 |
Finance |
108 |
1700 |
40 |
인적 리소스 |
203 |
2400 |
60 |
IT |
103 |
1400 |
20 |
마케팅 |
201 |
1800 |
70 |
홍보 |
204 |
2700 |
30 |
구매 |
114 |
1700 |
80 |
Sales |
145 |
2500 |
50 |
배송 |
121 |
1500 |
참고
앞서 증명했듯이 Oracle의 semijoin 은 기능적으로 Snowflake와 동일합니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
관련 EWIs 없음.