解决方案 »

  1.   


    SELECT A.PAPERID FROM 
    (SELECT PAPERID FROM TABLE WHERE RESEARCHFIELDID = '9999832') A,
    (SELECT PAPERID FROM TABLE WHERE RESEARCHFIELDID = '9999833') B,
    WHERE A.PAPERID = B.PAPERID 
      

  2.   

    那我参数多了呢?比如我要包含10个不同的RESEARCHFIELDID 
      

  3.   

    select  a.PAPERID   FROM table where 
    exists(select 1 from table b where b.PAPERID =a.PAPERID  and b.RESEARCHFIELDID= '9999832') and 
    exists(select 1 from table b where b.PAPERID =a.PAPERID  and b.RESEARCHFIELDID= '9999833')
    你说的十种是什么情形,如果是列举的只能自己追加判断,但是如果你要想找包含所有RESEARCHFIELDID的还可以想别的办法
      

  4.   


    SELECT A.PAPERID, COUNT(0) FROM (
    SELECT DISTINCT PAPERID, RESEARCHFIELDID FROM TABLE 
    WHERE RESEARCHFIELDID = '9999832' OR RESEARCHFIELDID = '9999833') A
    GROUP BY A.PAPERID
    HAVING COUNT(0) > 1 
      

  5.   

    select * from (
    select PAPERID,wm_concat(RESEARCHFIELDID) as ad  from TABLE group by PAPERID
    ) where ad ='9999832,9999833'
    包含多少个不同RESEARCHFIELDID  都OK  改一下ad ='9999832,9999833,111,232,341,32131,1231'就可以了,当然这个数据的先后顺序你要自己找一下,wm_concat拼接出来的数据会按照一定顺序排的--或者
     where instr(ad,'9999832')>0 and  instr(ad,'9999833')>0 ........
      

  6.   

    wm_concat( distinct  RESEARCHFIELDID)  改成这个 忘记加了
      

  7.   

    4楼正解把?把or改成in,多个参数就可以了