2009-12-21 1 views
14
내가 안 만들려고 노력하고

이 같은 select 문에 가입 SELECT 문에 조인SQL 내부가

select * 
from (select* from bars where rownum <= 10)as tab1 
inner join (select * from bars where rownum <= 10)as tab2 
on tab1.close=tab2.close 

나는 다음과 같은 오류가 발생합니다 : ORA-00933 SQL 명령이 제대로 어떤 도움 종료되지 감사하겠습니다, 감사합니다!

답변

39

그냥 쿼리에서 as을 제거 :

select * 
from (select* from bars where rownum <= 10) tab1 
inner join (select * from bars where rownum <= 10) tab2 
on tab1.close=tab2.close 
+1

안녕 egorius, 감사, 그것은했다. 나는 아직도 가끔 oracle이 때로는 받아들이지 않는 이유를 이해하지 못한다. – user235693

+5

'As'는 COLUMN 별칭 앞에 (선택적으로) 사용할 수있다. TABLE 별명 앞에 'as'를 추가 할 수 없습니다. 예 : "이중 선택에서 count (*)를 cnt로 선택". –

+1

SELECT 구문 다이어그램을 보길 원할 수도 있습니다. (상당히 큽니다 만 정확한 구문을 정의합니다) : http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_103a.htm#SQLRF01702 –

1
select * from 
((select* from bars where rownum <= 10)as tab1 
inner join (select * from bars where rownum <= 10)as tab2 
on tab1.close=tab2.close) 
2

나는 오류가 문을 종료 세미콜론을 필요로 당신에서 온다 믿습니다. 그 선택은 내게 다르게 보인다.

1

단지 사이에 공백 ')'와 '로'제공 :

select * from (select* from bars where rownum <= 10) as tab1 
inner join 
(select * from bars where rownum <= 10) as tab2 
on 
tab1.close=tab2.close