Oracle 10g 的分页连接查询出错
Error in Join query with pagination for Oracle 10g
我正在 SqlDeveloper 中针对 Oracle 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;
和甲骨文returns:
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
我找不到带有 Oracle 10g 内部连接和分页的 select 子句的示例,所以我不知道我做错了什么。
你用别名搞乱了查询,这使得它 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;
我正在 SqlDeveloper 中针对 Oracle 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;
和甲骨文returns:
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
我找不到带有 Oracle 10g 内部连接和分页的 select 子句的示例,所以我不知道我做错了什么。
你用别名搞乱了查询,这使得它 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;