select name,age from person结果集是:
a,22
b,33我希望得到的结果集是:
1,a,22
2,b,33
3,....
4,....
.
.
.
第一列序号字段希望从select 语句中产生,怎么办的?

解决方案 »

  1.   

    select rownum,name,age from person;
      

  2.   

    用rownum在表中可以,我现在从视图中查询的,怎么办?
      

  3.   


    也一样...rownum是伪列...只跟结果集走...不管数据从何而来
      

  4.   

    一个用法,没有区别啊.
    CREATE OR REPLACE VIEW v_test AS SELECT emp.empno,dept.deptno FROM emp,dept WHERE emp.deptno=dept.deptno;
    SELECT ROWNUM,x.* FROM v_test x;
    输出:
    ROWNUM EMPNO DEPTNO
    1 7369 20
    2 7499 30
    3 7521 30
    4 7566 20
    5 7654 30
    6 7698 30
    7 7782 10
    8 7788 20
    9 7839 10
    10 7844 30
    11 7876 20
    12 7900 30
    13 7902 20
    14 7934 10
      

  5.   

    我也试了下,证明是可以的
    create view test_view as 
    select a.dno,a.dname,a.dnum,b.eno,b.ename,b.eage 
    from test_dept a,test_emp b 
    where a.dno=b.dno
    select rownum,dno from test_view
    结果:
    1 1 10
    2 2 10
    3 3 10
    4 4 20
    5 5 20
    6 6 20
    7 7 30
    8 8 30
    9 9 30
      

  6.   

    方法二:
    select row_number() over(order by name) as rn,name,age from person;
      

  7.   

    方法二:
    select row_number() over(order by name) as rn,name,age from person;
      

  8.   

    The first Method:select rownum,name,age from person; The second Method:select row_number() over (order by 1) as no,name,age from person;