在 oracle sql 视图中显示结果集中的行号列

Show row number column from result set in oracle sql view

我想添加一个额外的列,这样如果我得到,比方说,结果中有 4 行,此列的值将是 1、2、3、4。

我试过 ROWNUM,但由于这是一个视图,它显示了整个视图中的实际行号,这不是我想要的。

这是一个示例架构:

CREATE TABLE TEST (RID NUMBER, RVAL VARCHAR2(100 BYTE));
INSERT INTO TEST (RID, RVAL) VALUES (1, 'ONE');
INSERT INTO TEST (RID, RVAL) VALUES (2, 'TWO');
INSERT INTO TEST (RID, RVAL) VALUES (3, 'THREE');
INSERT INTO TEST (RID, RVAL) VALUES (4, 'FOUR');

CREATE OR REPLACE VIEW VTEST AS 
SELECT ROWNUM AS NUMROW, RID, RVAL FROM TEST;

这里有两个示例查询。第一个显示我想要的结果。第二个我想如何得到它(用一个简单的 select 反对视图)

SELECT ROWNUM,RID,RVAL FROM TEST WHERE RID = 3 OR RID = 4;    
SELECT * FROM VTEST WHERE RID = 3 OR RID = 4;

这里是fiddle:http://sqlfiddle.com/#!4/4e816/3

在 Oracle 中使用 ROW_NUMBER oracle docs