0

我有这个查询

Select distinct p_id, p_date,p_city 
  from p_master 
 where p_a_id in(1,2,5,8,2,1,10,02)

我的IN子句包含 200 个值。我如何知道查询未返回哪些。子句中的每个值都IN可能有记录,在某些情况下它们没有。我想知道没有为任何选定p_a_id类型找到的所有记录。

请帮忙

4

1 回答 1

0

这可以解决问题,但我相信有一种更简单的方法可以找到它:-)

with test1 as 
(select '1,2,5,8,2,1,10,02' str from dual)
select * from (
select trim(x.column_value.extract('e/text()')) cols 
   from test1 t, table (xmlsequence(xmltype('<e><e>' || replace(t.str,',','</e><e>')|| '</e></e>').extract('e/e'))) x) cols 
   left outer join 
 (Select count(*), p_a_id from p_master where p_a_id in (1,2,5,8,2,1,10,02) group by p_a_id) p
 on p.p_a_id = cols.cols
 where p_a_id is null
 ;
于 2012-11-08T16:51:00.837 回答