'(+)'을 포함하는 Oracle의 일부 SQL 쿼리를 보았습니다. 그 의미가 전혀 없습니다. 누군가 그 목적을 설명하거나 사용법의 예를 제시 할 수 있습니까? 감사합니다.SQL 쿼리에서 (+) 의미
답변
오라클의 OUTER JOIN
동의어입니다.
SELECT *
FROM a, b
WHERE b.id(+) = a.id
가 +가 OUTER 당신이 그것을 넣어 어느 쪽에 따라 가입을위한 지름길이다
SELECT *
FROM a
LEFT OUTER JOIN b
ON b.id = a.id
나는 다음 사람을 위해주의 할 것이고, 여기서'a'와'b''의 일에주의를 기울이십시오. 예제에서 from 절은'[a, b]'이지만 동등성 검사는'[b.id = a.id]'입니다. 나의 습관은 동등성을 유지하는 것이다. [a.id = b.id]'; 그래서 저는 그 모범을 잘못 읽었습니다. 내 인생의 시간은 내가 돌아 오지 않을 것이다 ^) – BIBD
오라클의 말처럼 "(+)"는 "이 부분은 일치하는 것이 없을 때 null을 얻는다"라고 해석 할 것이다. '[a.id = b.id]'의 동등성에 대한 내 규범 사용하기; 그러면 일어나는 일이 있습니다. 현대 표준을 따르기 위해 쿼리를 다시 작성하면'[a.id = b.id (+)]'는 왼쪽 바깥 쪽이되고'[a.id (+) = b.id] '는 a가됩니다. 오른쪽 외부. – BIBD
(+) 연산자는 조건문과 조건부에 공백 또는 null 값을 포함 할 수있는 선택적 테이블의 측면에 직접 배치됩니다. – Yergalem
과 동일한 결과를 제공, 그것은 왼쪽 또는 오른쪽 OUTER가
확인을 가입 나타냅니다 일부 예제의 경우 this forum post의 두 번째 항목
IIRC, 이전 버전의 Oracle에서는 ANSI 이전 조인 구문의 외부 조인을 나타 내기 위해 +가 사용됩니다. 즉 :
select foo,bar
from a, b
where a.id = b.id+
는
select foo,bar
from a left outer join b
on a.id = b.id
참고하는 것과 동일합니다 : 나는 ANSI 이전의 SQL 구문을 사용한 적이 이것은, 뒤로/약간 잘못되었을 수 있습니다.
ANSI sql을 싫어하는 사용자를 위해 최신 버전의 Oracle에서 사용됩니다. –
@ 마크 브래디. 나는 그것이 질의의 의도를 더 분명하게 느낀다. 그리고 ANSI SQL도 싫어합니다. –
합치는 테이블이 반환되는 레코드의 양을 줄이지 않도록하기 위해이 값을 사용하십시오. 따라서 가입 할 모든 키에 대한 레코드가없는 테이블에 가입 할 때 편리합니다. 예를 들어
, 당신은 고객 및 구매 테이블에 가입 한 경우 : 모든 고객과 모든 구매 일람에
, 당신은 구매 테이블에 조인 (+) 외부 고객 있도록 할 원하는 아직 보고서에 아무것도 표시되지 않았습니다.
- 1. 이 SQL 문의 의미
- 2. SQL 일치 쿼리에서 SQL 주입
- 3. SQL : MYID = ANY? SQL 쿼리에서
- 4. SQL 쿼리에서 charindex 사용
- 5. 복잡한 SQL 쿼리에서 구별
- 6. LINQ 쿼리에서 SQL 스크립트
- 7. Now() ODBC SQL 쿼리에서?
- 8. SQL 쿼리에서 바꾸기
- 9. SQL 쿼리에서 \ t가 나온다
- 10. SQL 쿼리에서 행을 복제합니다.
- 11. SQL 쿼리에서 분할 문제
- 12. SQL SQL 쿼리에서 마지막 레코드 검색하기
- 13. SQL 쿼리에서 Breadcrumbs 구조 만들기
- 14. SQL 쿼리에서 개체로 설정 값
- 15. SQL 쿼리에서 List 전달 방법
- 16. SQL 쿼리에서 여러 문자열 바꾸기
- 17. SQL 쿼리에서 공백은 선택 사항입니까?
- 18. SQL 쿼리에서 날짜를 선택하는 방법
- 19. SQL 쿼리에서 괄호를 어떻게 이스케이프합니까?
- 20. MySQL : SQL 쿼리에서 데이터베이스 덤프
- 21. SQL 쿼리에서 html 보고서 생성
- 22. SQl 쿼리에서 distinct 키워드 사용
- 23. 쿼리에서 두 SQL 테이블을 조인
- 24. SQL 쿼리에서 Drupal 변수 사용
- 25. SQL 쿼리에서 슬래시는 무엇을 의미합니까?
- 26. PHP로 SQL 쿼리에서 시간 지정하기
- 27. 쿼리에서 SQL 스크립트를 생성하는 방법
- 28. SQL 쿼리에서 오류를 처리하려면 어떻게합니까?
- 29. AdventureWorks의 sql 쿼리에서 도움이 필요합니다.
- 30. 의미
dupe : http://stackoverflow.com/questions/430274/oracle-what-do-in-a-where-clause – Alkini
실제로 질문을 게시하기 전에 답변을 검색하려고했지만 아무 것도 얻지 못했습니다. '+'또는 '(+)'를 검색 할 때 결과가 나타납니다. URL의 질문 제목이 (+) 부분도 건너 뛰는 것 같아 이상합니다. – Zabbala
이것은 [이 게시물] (http://stackoverflow.com/questions/430274/oracle-what-does-do-in-a-where-clause)의 복제입니다. 거기에 더 많은 정보가 있습니다. –