select * from v_box_label
显示如下:
a   3
b   2如果将select * from v_box_label做成一个视图v1,是否可针对视图v1 select出这样的结果:
a  3
a  3
a  3
b  2
b  2
即,每条记录显示为相应条数(第2列的值)的重复记录

解决方案 »

  1.   


    例子如下:
    DROP TABLE t2;
    CREATE TABLE t2(a INT,c INT);
    INSERT INTO t2 VALUES(1,3);
    INSERT INTO t2 VALUES(2,2);
    INSERT INTO t2 VALUES(3,4);
    INSERT INTO t2 VALUES(4,1);
    COMMIT;
    SELECT * FROM t2; 
    SELECT t2.* 
      FROM T2,
           (SELECT ROWNUM rn FROM DUAL CONNECT BY ROWNUM <= (SELECT MAX(C) FROM T2))
    WHERE t2.c>=rn ORDER BY a;
    输出:
    A C
    1 3
    1 3
    1 3
    2 2
    2 2
    3 4
    3 4
    3 4
    3 4
    4 1
      

  2.   


    运行提示ora-01743 ,你的oracle是多少版本的? 
      

  3.   

    3L,你的SQL我测试过的,不行,你的SQL写的有问题...
      

  4.   

    估计你的数据库版本低于10g,如果是10g以下的可以使用如下的方法:
    DROP TABLE t2;
    CREATE TABLE t2(a INT,c INT);
    INSERT INTO t2 VALUES(1,3);
    INSERT INTO t2 VALUES(2,2);
    INSERT INTO t2 VALUES(3,4);
    INSERT INTO t2 VALUES(4,1);
    COMMIT;
    SELECT * FROM t2; SELECT T2.*
      FROM T2,
           (SELECT ROWNUM RN
              FROM DUAL, (SELECT MAX(C) C FROM T2) X
            CONNECT BY ROWNUM <= X.C)
     WHERE T2.C >= RN
     ORDER BY A;