intersect-vs-minus در اوراکل

 

INTERSECT vs MINUS در اوراکل

A INTERSECT B = A MINUS (A MINUS B)
برای درک این مورد با دو مثال متفاوت بیان می کنم که فرق آنها در اوراکل به چه صورت می باشد.
مثال اول در خصوص اشتراک بین دو مجموعه می باشد که از دستور INTERSECT در دیتابیس Oracle استفاده می کنیم:
مجموعه اول شامل اعداد ۱و۲و۳و۴
مجموعه دوم شامل اعداد ۵و۲و۳و۶
select * from(
(select 1 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 4 as x from dual
)
INTERSECT
(select 5 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 6 as x from dual
))
خوب جواب دستور بالا در اوراکل بدین صورت است: ۲و۳
حال مثال دوم در خصوص دستور MINUS در دیتابیس Oracle به معنی (تفاضل) دو مجموعه می باشد:
مجموعه اول شامل اعداد ۱و۲و۳و۴
مجموعه دوم شامل اعداد ۵و۲و۳و۶
همانطور که در مثال زیر مشاهده می کنید جواب کوئری که تفاضل دو مجموعه می باشد شامل اعداد ۱و۴ هست.
(select 1 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 4 as x from dual
)
minus
(select 5 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 6 as x from dual
)
حال می خواهیم که این دستور (A INTERSECT B = A MINUS (A MINUS B را از طریق مثال زیر ثابت کنیم . بدین صورت که مجموعه اول را از نفاضل دو مجموعه که در مثال بالا مشاهده کردید،منها می کنیم.
select * from(
(select 1 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 4 as x from dual
)
MINUS
(
(select 1 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 4 as x from dual
)
minus
(select 5 as x from dual
union
select 2 as x from dual
union
select 3 as x from dual
union
select 6 as x from dual
) ))
در نتیجه جواب دستور بالا در اوراکل بدین صورت است: ۲و۳ 
4/5 - (1 امتیاز)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)