2016-11-02 5 views
0

나는 Oracle에 익숙하지 않으며 항상 SQL Server에서 사용하는 매우 유용한 쿼리 유형을 복제하려고합니다. ; tablename as (..) as Oracle equivalent

나는이 쿼리

; With tablename as (
Select 
Column1 , 
Column2 
From table1 
) 
, with tablename2 as (
Select 
column3, 
Column4 
) 
Select 
Column 2 , 
column 4 
from Tablename t1 
left outer join tablename t2 
on t1.column1 = t2.column3 
+6

- 오라클은 SQL 표준을 따르는 것을 제외하고 명령문 종료 문자를 넣습니다 (은';')가 자신이 속한 여기서 끝 (두 번째'with'에서 SQL Server에서도 유효하지 않습니다. 다음 매뉴얼을 참조하십시오. https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#BABCGAAJ (일반적인 테이블 표현식은'; with'을 사용하지 않고 키워드'with'를 사용하여 소개됩니다) –

+1

또한 참고 'Column 2'와'Column 4'가 있고'Column2'와'Column4'가 있어야합니다. – FDavidov

+0

이 사이트에서 올바른 Oracle 구문을 사용하는 솔루션을 많이 찾을 수 있습니다. 여기에 제가 어제 제공 한 솔루션이 있습니다. http://stackoverflow.com/questions/40366876/oracle-sql-merge-multiple-rows-with-same-id-but-out-of-order-identifiers/40367201#40367201 (그 대답은 또 다른 멋진 기능을 보여줍니다. 불행히도 Oracle 11.2 이상이 필요합니다. – mathguy

답변

2

당신은 몇 가지 오류 (누락 된 열 이름에 공백, ...)가 오라클에 상응를 찾기 위해 노력하고있다. 이 작동합니다 :

오라클에서 동일합니다
WITH tablename AS (SELECT Column1, Column2 FROM table1), 
    tablename2 AS (SELECT column3, Column4 FROM table2) 
SELECT Column2, column4 
    FROM Tablename t1 LEFT OUTER JOIN tablename t2 ON t1.column1 = t2.column3