消除记录而不加组合

时间:2016-03-28 06:34:48

标签: sql oracle oracle8i

我在TEMP_DATA表中有以下数据

enter image description here

从这些记录中,我只想获得那些有CAT_NO 36和39组合记录的记录,理想情况下我的预期结果如下

enter image description here

我该怎么做?

2 个答案:

答案 0 :(得分:3)

我没有要测试的Oracle8实例,但这应该可行:

Elapsed time is 0.463370 seconds.
Elapsed time is 1.566913 seconds.

答案 1 :(得分:1)

为什么你没有尝试交叉。

 SELECT prod_type,
       prod_no,
       cat_no,
       prod_cat,
       text,
       prod_seq
  FROM temp_data
 WHERE prod_no IN (SELECT prod_no
                     FROM temp_data
                    WHERE cat_no = 36
                   INTERSECT
                   SELECT prod_no
                     FROM temp_data
                    WHERE cat_no = 39)