执行视图查出来的数据比执行视图中的语句查询出来的数据要少,这是为什么,有哪位高人指点一下

解决方案 »

  1.   


    Connected as scott
    SQL> select * from emp;EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
    ----- ---------- --------- ----- ----------- --------- --------- ------
     7369 SMITH      CLERK      7902 1980-12-17     800.00               20
     7499 ALLEN      SALESMAN   7698 1981-02-20    1600.00    300.00     30
     7521 WARD       SALESMAN   7698 1981-02-22    1250.00    500.00     30
     7566 JONES      MANAGER    7839 1981-04-02    2975.00               20
     7654 MARTIN     SALESMAN   7698 1981-09-28    1250.00   1400.00     30
     7698 BLAKE      MANAGER    7839 1981-05-01    2850.00               30
     7782 CLARK      MANAGER    7839 1981-06-09    2450.00               10
     7788 SCOTT      ANALYST    7566 1987-04-19    3100.00               20
     7839 KING       PRESIDENT       1981-11-17    5000.00               10
     7844 TURNER     SALESMAN   7698 1981-09-08    1500.00      0.00     30
     7876 ADAMS      CLERK      7788 1987-05-23    1100.00               20
     7900 JAMES      CLERK      7698 1981-12-03     950.00               30
     7902 FORD       ANALYST    7566 1981-12-03    3000.00               20
     7934 MILLER     CLERK      7782 1982-01-23    1300.00               1014 rows selected
    SQL> create view view_emp
      2  as 
      3  select ename,job,sal,deptno
      4  from emp
      5  where sal>=1500 and sal<=2000;View createdSQL> select * from view_emp;ENAME      JOB             SAL DEPTNO
    ---------- --------- --------- ------
    ALLEN      SALESMAN    1600.00     30
    TURNER     SALESMAN    1500.00     30SQL> select ename,job,sal,deptno
      2  from emp
      3  where sal>=1500 and sal<=2000;ENAME      JOB             SAL DEPTNO
    ---------- --------- --------- ------
    ALLEN      SALESMAN    1600.00     30
    TURNER     SALESMAN    1500.00     30
      

  2.   

    不可能是少了吧,你select count(*) from view,和你单独用语句查询下数量,
      

  3.   

    从上面的数据看,你说的情况不可能发生,
    要么就是你的sql语句写的有问题,
    where语句啊,order by,group by,什么的
      

  4.   

    这样是不可能的,建议楼主看一下种执行sql语句的差别