2017-10-17 4 views
0

내가 오라클 10g의 데이터베이스 대상 SqlDeveloper이 쿼리를 실행하고 있습니다위한 페이지 매김와 쿼리 가입 :오류에 오라클 10g

select P1.FIELD1, P1.COD from 
(select P1.FIELD1, P1.COD, row_number() 
over (order by P1.FIELD1) r from 
SCHEMA1.P2 
INNER JOIN SCHEMA1.P1 on SCHEMA1.P1.COD=P2.FIELD2) 
where P1.FIELD_11 = 'VALUE1' and r between 6 and 10; 

을 그리고 오라클은 반환 : I 시도

Error SQL: ORA-00904: "P1"."FIELD_11": invalid identifier 

:

select SCHEMA1.P1.FIELD1, SCHEMA1.P1.COD from 
(select SCHEMA1.P1.FIELD1, SCHEMA1.P1.COD, row_number() 
over (order by SCHEMA1.P1.FIELD1) r from 
SCHEMA1.P2 
INNER JOIN SCHEMA1.P1 on SCHEMA1.P1.COD=SCHEMA1.P2.FIELD2) 
where SCHEMA1.P1.FIELD_11 = 'VALUE1' and r between 6 and 10; 

동일한 오류가 발생했습니다.

ORA-00904: "SCHEMA1"."P1"."FIELD_11": invalid identifier 

오라클 10g에서 내부 조인과 페이지 매김이 포함 된 select 절의 예제를 찾을 수 없으므로 잘못된 작업을 수행 할 수 없습니다.

답변

2

당신은 confusing.use하게 별칭 쿼리를 엉망으로 한 짧은 별칭 대신 사방 전체 schema.table.column

SELECT p.field1, 
     p.cod 
FROM (SELECT p1.field1, 
       p1.cod, 
      p1.field_11, 
       row_number() 
       over (
        ORDER BY p1.field1) r 
     FROM schema1.p2 p2 
       inner join schema1.p1 p1 
         ON p1.cod = p2.field2) p 
WHERE p.field_11 = 'VALUE1' 
     AND r BETWEEN 6 AND 10;