因为CUSORDER是空的,所以Cusorder.ROOMNO值是NULL
在ORACLE中,null不等于任何值,也不不等于任何值,嘿嘿

解决方案 »

  1.   

    对,原因就是Cusorder.ROOMNO值是NULL。
      

  2.   

    select Room.ROOMNO from Room, Cusorder where nvl(Cusorder.ROOMNO,0)<>Room.ROOMNO and Room.RTYPE='economy';
      

  3.   

    CUSORDER表中的ROOMNO值是空的,即NULL。
    NULL是一个特殊的值,在做>=,>,<=,<>条件判断时的返回值都为false,因此无返回值。只有在null or true情况下返回true。
      

  4.   

    上面说得对:就是
    因为CUSORDER是空的,所以Cusorder.ROOMNO值是NULL
    在ORACLE中,null不等于任何值,也不不等于任何值,嘿嘿
      

  5.   

    select a.ROOMNO from Room a, Cusorder b where exist (select a,b from b.ROOMNO<>a.ROOMNO and a.RTYPE='economy')
      

  6.   

    多谢 ,但是 luyuen(luyuen):select Room.ROOMNO from Room, Cusorder where nvl(Cusorder.ROOMNO,0)<>Room.ROOMNO and Room.RTYPE='economy';no rows selected另外: 
    select a.ROOMNO from Room a, Cusorder b where exist (select a,b from b.ROOMNO<>a.ROOMNO and a.RTYPE='economy')ERROR at line 1:
    ORA-00936: missing expression不知道为什么????????????
      

  7.   

    select a.ROOMNO from Room a, Cusorder b where exist (select a,b from b.ROOMNO<>a.ROOMNO and a.RTYPE='economy')
    这句好像不行,a,b字段是那个表的呢?
      

  8.   

    select a.ROOMNO 
    from Room a, Cusorder b 
    where a.RTYPE='economy'and (
    select a,b from b.ROOMNO<>a.ROOMNO )
      

  9.   

    你用下边的语法试试(oracle 9i可以的)
     SELECT a.ROOMNO FROM Room a
     LEFT JOIN  Cusorder b
     ON  b.ROOMNO<>a.ROOMNO 
     AND a.RTYPE='economy'
      

  10.   

    引入NULL情况的=比较:
    a=b or a is null and b is null
    引入NULL情况的!=比较:
    a!=b or a is null or b is null and not (a is null and b is null) 
    但你这里的思路有问题,两个表之间这种情况属于典型的外连接查询:
    所以语句改为:
    select Room.ROOMNO from Room, Cusorder where Cusorder.ROOMNO=Room.ROOMNO(+) and Room.RTYPE(+)='economy';
      

  11.   

    如果你用<>进行连接,那么当两个表里都有数据时,结果会很乱的。
      

  12.   

    select nvl(Room.ROOMNO,0) from Room, Cusorder where Cusorder.ROOMNO=Room.ROOMNO(+) and Room.RTYPE(+)='economy';
      

  13.   

    select a.ROOMNO from Room a, Cusorder b where b.ROOMNO=a.ROOMNO(+) and a.RTYPE='economy';