2012-04-23 3 views
0

저는 SQL에 익숙하지 않고 일부 Oracle 명령을 SQL Server로 변환하려고합니다. 이 문제는 다음과 같은 오른쪽 외부 변환에 놓여 가입 :Oracle 오른쪽 외부 조인을 SQL Server로 변환

where 
    SOURCE_FORMATS.LOC_SIMPLE_ENTITY_ID = FILEFORMAT_INTERNAL_SIGNATURES.LOC_FILEFORMAT_ID (+) 

를 지금까지 내가 SQL에서 이해할 수있는이 같은 "절에서"이 뭔가 표현되어야한다 :

from 
    SIMPLE_ENTITIES "SOURCE_FORMATS" 
RIGHT OUTER JOIN FILEFORMAT_INTERNAL_SIGNATURES 
on SOURCE_FORMATS.LOC_SIMPLE_ENTITY_ID = FILEFORMAT_INTERNAL_SIGNATURES.LOC_FILEFORMAT_ID 

인가 이 논리가 맞습니까?

+0

과 동일 네, 맞습니다, 그것은 년대 * 더 * 솔루션도 그것을 작성하는 방법의 ANSI 표준을 준수하기 때문에 JOIN 's - 저는 오라클 포맷보다 더 선호합니다. –

+3

아니요, 저는 첫 번째 쿼리가 LEFT JOIN이라고 생각합니다. –

+1

오라클은 (2001 년 버전 9.0 이후) 10 년 넘게 ANSI 외부 조인 구문을 지원했습니다. 오래된'(+)'구문은 ANSI 조인 구문이 성립되기 전에 오라클이 가졌던 구문이었습니다. 나는 그 당시 다른 RDBMS가'* =' –

답변

2

외부 조인을위한 ANSI 이전 Oracle 구문에서, (+)는 보존 될 테이블이 아니라 부족할 것으로 예상되는 테이블에 대해 사용됩니다.

그래서 :

select * from t1, t2 where t1.col1 = t2.col2 (+) 

select * from t1 left join t2 on t1.col1 = t2.col2 
+0

과 같은 독점적 인 구문을 가지고 있다고 믿는다. 좋은 대답과 나는 간단한 예제를 좋아한다. 감사합니다 – Fraser

+0

고마워요, 이건 왼쪽 조인이 아니라 오른쪽 조인이라고 지적했습니다. – Fraser

관련 문제