当前位置: 代码迷 >> Oracle技术 >> 求sql写法:找到RESEARCHFIELDID 既包含9999833又包含9999832的PAPERID
  详细解决方案

求sql写法:找到RESEARCHFIELDID 既包含9999833又包含9999832的PAPERID

热度:125   发布时间:2016-04-24 08:08:50.0
求sql写法:找出RESEARCHFIELDID 既包含9999833又包含9999832的PAPERID
PID             PAPERID       RESEARCHFIELDID        REMOVE
999908 104000 9999832 1
999909 104061 9999833 1
999910 104062 9999833 1
999911 104063 9999833 1
999912 104124 9999833 1
999913 104124 9999832 1

------解决方案--------------------
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的还可以想别的办法
------解决方案--------------------

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 
  相关解决方案