A表100条数据 字段 NSELECT count(*) from A where A.N=A.N;结果集是200条数据  怎么理解呢?

解决方案 »

  1.   

    -- where 条件是多余的,返回的其实就是表A的记录行总数!
    -- 可以看出:你做事情喜欢画蛇添足!
      

  2.   

    --应该只有100条的
    SQL> select * from a;
     
             N
    ----------
             1
             2
             3
             4
             5
             6
             7
             
             .
             .
             .
             
            94
            95
            96
            97
            98
            99
           100
     
    100 rows selected
     
    SQL> select count(*) from a where a.n=a.n;
     
      COUNT(*)
    ----------
           100
     
    SQL> 
      

  3.   

    scott@SZTYORA> select * from emp;     EMPNO ENAME                JOB                       MGR HIREDATE                   SAL       COMM     DEPTNO
    ---------- -------------------- ------------------ ---------- ------------------- ---------- ---------- ----------
           111 SMITH                CLERK                    7902 1980-12-17 00:00:00        800            20
          7499 ALLEN                SALESMAN                 7698 1981-02-20 00:00:00       1600        300         30
          7521 WARD                 SALESMAN                 7698 1981-02-22 00:00:00       1250        500         30
          7566 JONES                MANAGER                  7839 1981-04-02 00:00:00       2975            20
          7654 MARTIN               SALESMAN                 7698 1981-09-28 00:00:00       1250       1400         30
          7698 BLAKE                MANAGER                  7839 1981-05-01 00:00:00       2850            30
          7782 CLARK                MANAGER                  7839 1981-06-09 00:00:00       2450            10
          7788 SCOTT                ANALYST                  7566 0087-07-13 00:00:00       3000            20
          7839 KING                 PRESIDENT                     1981-11-17 00:00:00       5000            10
          7844 TURNER               SALESMAN                 7698 1981-09-08 00:00:00       1500          0         30
          7876 ADAMS                CLERK                    7788 0087-07-13 00:00:00       1100            20
          7900 JAMES                CLERK                    7698 1981-12-03 00:00:00        950            30
          7902 FORD                 ANALYST                  7566 1981-12-03 00:00:00       3000            20
          7934 MILLER               CLERK                    7782 1982-01-23 00:00:00       5201            10
          8000 luoyoumou            MANAGER                  7782 2011-04-02 16:32:43       5000       1000         20已选择15行。scott@SZTYORA> select count(*) from emp e
      2  where e.ename=e.ename;  COUNT(*)
    ----------
            15scott@SZTYORA> select count(*) from emp e
      2  where e.deptno=e.deptno;  COUNT(*)
    ----------
            15scott@SZTYORA>
      

  4.   

    SELECT count(*) from A where A.N=A.N;这个会把A.N is null的数据过滤掉,怎么会200条呢,搞错了吧
      

  5.   

    where A.N=A.N;-- 等同于一个永真条件(即:不管什么情况,永远是真的,我们一般习惯:where 1=1 )
      

  6.   


    n的值是null,你也永真?????