2016-05-04 36 views
0

我有兩列這樣的:迭代通過兩列,並比較他們

結果集1:select sPersonID from tPersonData where x < 50

結果集2:select sPersonID from tPersonData where x > 50

我想通過柱1迭代和要檢查,如果每sPeronID存在於列至少1次,2列

樣本數據:

Result-Set 1: 
00/510 
00/650 
00/644 
00/690 

Result-Set 2: 
00/510 
00/640 
00/644 

和預期的結果應該是像TRUE/FALSE

+1

你不需要對任何迴路或存儲過程。添加示例表格數據和預期結果。 – jarlh

+0

你說專欄,但我寧願說結果集。 – jarlh

+0

我改變了。 – xileb0

回答

1

自我從左側加入使用左tPersonData加入和組由sPersonID和計算的相應的記錄,從右邊數:

select t1.sPersonID, if(count(t2.sPersonID)=0,'false','true') as result 
from tPersonData t1 
left join tPersonData t2 on t1.sPersonID=t2.sPersonID and t2.x>50 
where t1.x<50 
group by t1.sPersonID 
0

你可以試試這個

select case 
     when a = b then 
      'TRUE' 
     else 
      'FALSE' 
     end 
    from (select (select COUNT(sPersonID) 
        from tPersonData t1 
       where t1.x < 50 
        AND t1.sPersonID IN 
         (select sPersonID from tPersonData where x > 50)) a, 
       (select COUNT(sPersonID) from tPersonData t1 where t1.x < 50) b 
      from dual)