=  相等   select * from state where state_cd='MA';
in 等于括号内任一成员   select * from customer where state_cd in ('MA','NJ');
我想你应该用弟三种方式吧!

解决方案 »

  1.   

    SQL> select * from forums where forumno in ('1','2','3');FO FORUMNAME                                                 NUM      RENUM
    -- -------------------------------------------------- ---------- ----------
    MANAGER
    --------------------
    1  求医问药                                                   17         31
    beckham2  父母论坛                                                    5         11
    bobo3  健康与性                                                    3          6
    欧公
    SQL> select * from forums where forumno='1' or forumno='2' or forumno='3';FO FORUMNAME                                                 NUM      RENUM
    -- -------------------------------------------------- ---------- ----------
    MANAGER
    --------------------
    1  求医问药                                                   17         31
    beckham2  父母论坛                                                    5         11
    bobo3  健康与性                                                    3          6
    欧公
      

  2.   

    我个人觉得
    select * from table1 where name = (select name from table2 where address='tj')
    语意不是很清楚,这条语句要不就写成这样:
    select * from table1,table2 where (table1.name = table2.name) and  (table2.address='tj')
    第二条和第三条语句结果好象是一样的。
      

  3.   

    in 等价于 =any单独一个=,两边都应该是值而不是结果集. 而in后边一般是结果集
      

  4.   

    如果子查询返回的结果集超过一个时,查询出错:
    ORA-01427: 单行子查询返回多于一个行
    并不符合当前使用环境。用in和用any差不多,但是一般都用in,因为简单明了。