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
))
(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
)
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
) ))
(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 امتیاز)
جستجو
مطالب اخیر
نظرات اخیر
- محمد در تبدیل تاریخ ها در اوراکل
- مجتبی خالقداد در پلاگین کد امنیتی اوراکل اپکس(ای پکس)
- سعید حسن پور در تبدیل تاریخ ها در اوراکل
- حسین در تبدیل تاریخ ها در اوراکل
- مهرسا سعادت در نقشه راه اوراکل APEX برای نسخه بعدی
برچسبها
AOP
APEX
apexrad
captcha
CDN
constraint
ebs
epg
forms
index
injection
iran
iranoug
longtype
Materialized-view
Oracle Application Express
orclapex
performance
Persian Sort
plsql
session
sql
standalone
variable scope
XE
امنیت
اوراکل
اپکس
ایران
ایندکس
ایپکس
بنبست
بهینه ساز
تاریخ شمسی
ترجمه
ترفند
حروف فارسی
داکیومنت
داینامیک
شمسی
مرتب سازی فارسی
نصب
نکته
پلاگین
یونیک