[SQL] 오라클 : 'WHERE 절에`(+)의 기능은 무엇입니까?
SQL오라클 : 'WHERE 절에`(+)의 기능은 무엇입니까?
우리는 (일반화) 마이그레이션하고있는 오라클 기반 응용 프로그램에서 다음을 찾았습니다
SELECT
Table1.Category1,
Table1.Category2,
count(*) as Total,
count(Tab2.Stat) AS Stat
FROM Table1, Table2
WHERE (Table1.PrimaryKey = Table2.ForeignKey(+))
GROUP BY Table1.Category1, Table1.Category2
(+)는 WHERE 절에 무엇입니까? 나는 이전처럼 사용 본 적이 없어요.
해결법
-
==============================
1.이는 "="는 "(+)의 측면에 있습니다에 따라, 왼쪽 외부 또는 RIGHT OUTER를 나타냅니다 가입 (이 경우, 그것은 왼쪽 외부 조인이다). 그것은 때때로 사람들이 선호 된 오라클 구문을 누가 그들은 그들의 코드를 짧게 만드는 것을 좋아하기 때문에, 먼저 배웠다.
이는 "="는 "(+)의 측면에 있습니다에 따라, 왼쪽 외부 또는 RIGHT OUTER를 나타냅니다 가입 (이 경우, 그것은 왼쪽 외부 조인이다). 그것은 때때로 사람들이 선호 된 오라클 구문을 누가 그들은 그들의 코드를 짧게 만드는 것을 좋아하기 때문에, 먼저 배웠다.
베스트 가독성을 위하여,하지만 그것을 사용하지.
-
==============================
2.다른 사람이 언급 한 것처럼, (+) 구문은 오라클이 외부 조인과 같은 결과를 달성하기 위해 년 동안 사용했던 오래된 독점 구문입니다. 나는 SQL-92 표준 구문을 결정하기 전에 자신의 독자적인 구문을 채택 가정합니다.
다른 사람이 언급 한 것처럼, (+) 구문은 오라클이 외부 조인과 같은 결과를 달성하기 위해 년 동안 사용했던 오래된 독점 구문입니다. 나는 SQL-92 표준 구문을 결정하기 전에 자신의 독자적인 구문을 채택 가정합니다.
하나에 해당하는 쿼리는 다음이 될 것이다 표준 SQL OUTER가 (지금은 모든 주요 RDBMS 구현에서 지원) JOIN 구문을 사용했다 :
SELECT Table1.Category1, Table1.Category2, COUNT(*) AS Total, COUNT(Table2.Stat) AS Stat FROM Table1 LEFT OUTER JOIN Table2 ON (Table1.PrimaryKey = Table2.ForeignKey) GROUP BY Table1.Category1, Table1.Category2;
어떤 수단 :
-
==============================
3.그것은 비 ANSI가 외부 왼쪽 표기법에 가입합니다. 혼란 외측은 "(+)"기호를 사용하여 구 조인 오라클을 시작으로하는 것은 외부 ISO 99에 의해 대체 된 구문 가입.
그것은 비 ANSI가 외부 왼쪽 표기법에 가입합니다. 혼란 외측은 "(+)"기호를 사용하여 구 조인 오라클을 시작으로하는 것은 외부 ISO 99에 의해 대체 된 구문 가입.
from https://stackoverflow.com/questions/430274/oracle-what-does-do-in-a-where-clause by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] T-SQL : 라운드 근처로 15 분 간격 (0) | 2020.04.04 |
---|---|
[SQL] SQL Server의 SYSNAME 데이터 형식은 무엇입니까? (0) | 2020.04.04 |
[SQL] C #에서 저장 프로 시저에서 반환 값을 얻기 (0) | 2020.04.04 |
[SQL] 사용 MySQL의 공간적 확장은 원 내부의 점을 선택합니다 (0) | 2020.04.04 |
[SQL] SQL 서버 : 어떻게 INFORMATION_SCHEMA에서 외래 키 참조를 얻으려면? (0) | 2020.04.04 |