2012-11-08 31 views
0

发现一个特定的值记录类型我有这个疑问对于未在Oracle查询

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类型未找到的所有记录。

请帮

+0

更简单的方法:写有'另一个查询NOT IN'有相同的输入条款参数:) –

回答

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 
;