2012-11-08 58 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 
;