ROW_NUMBER()作为基于实体的视图对象中的瞬态属性

时间:2014-04-10 11:30:10

标签: sql oracle-adf oracle11gr2

是否有可能在基于实体的视图对象中产生一个瞬态属性,导致查询,其选择列表中包含以下内容:

   ROW_NUMBER() OVER (
      PARTITION BY A, B
      ORDER BY C
   ) AS AttrName

1 个答案:

答案 0 :(得分:1)

不确定是否正确理解了问题,但据我所知 - 您需要在某个特定的VIEW定义中使用Oracle分析函数。那是对的吗? 这很好用(emp是用不同的oracle模式提供的标准表。在我的例子中我使用了Apex模式,据我记得它也存在于SCOTT模式中):

create or replace view emp_serialized as
SELECT empno, deptno, hiredate,
ROW_NUMBER( ) OVER (PARTITION BY
deptno ORDER BY hiredate
NULLS LAST) SRLNO
FROM emp
WHERE deptno IN (10, 20)
ORDER BY deptno, SRLNO;

select * from EMP_SERIALIZED;

这是输出:

view EMP_SERIALIZED created.
     EMPNO     DEPTNO HIREDATE       SRLNO
---------- ---------- --------- ----------
      7782         10 09-JUN-81          1 
      7839         10 17-NOV-81          2 
      7934         10 23-JAN-82          3 
      7369         20 17-DEC-80          1 
      7566         20 02-APR-81          2 
      7902         20 03-DEC-81          3 
      7788         20 09-DEC-82          4 
      7876         20 12-JAN-83          5 

 8 rows selected 

如果我没有正确理解您的问题 - 请重新说明或尝试详细解释..