کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

عملگرهای UNION (اجتماع)، UNION ALL، INTERSECT (اشتراک) و MINUS (تفاضل)

عملگرهای UNION (اجتماع)، UNION ALL، INTERSECT (اشتراک) و MINUS (تفاضل)

مثالی از عملگر UNION

دستور زیر با استفاده از عملگر نام برده، نتایج را با هم ترکیب کرده و سطرهای تکراری را خذف می کند. عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.
توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید نوع داده ی همسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند (Order By).
این دستور نشان می دهد که در صورت عدم وجود ستون در یکی از دو جدول، باید نوع داده ها را با استفاده از تابع TO_CHAR، با هم match کنید.


select empno, ename, sal, to_char(null) as “Transfer Date” from emp ‎
        ‎  UNION
        select empno,ename,to_char(null) as “Sal”,tdate from oldemp;‎ 

Transfer Date
SAL
ENAMEENAME
EMPNO
5000
Sami
101
11-jul-2000
Smith
102
10-AUG-2000
Tamim
201
2400
Ravi
209

مثالی از کاربرد عملگر union

عملگر UNION تنها سطرهای متمایز را برمی گرداند که در تنها یکی از نتایج ظاهر می شود (عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بازیابی کنیم، عملگر UNION ALL را مورد استفاده قرار می دهیم).
در حالی که UNION ALL کلیه ی سطرها را بازگردانی می نماید. به عبارتی دیگر عملگر UNION ALL سطرهای تکراری را حذف نکرده و همه ی آن ها را نمایش می دهد.


select empno,ename from emp ‎

        union all

        select empno,ename from oldemp;‎

مثالی از کاربرد عملگر INTERSECT

دستور زیر به وسیله ی عملگر INTERSECT، دو نتیجه را باهم ترکیب می کند. این عملگر سطرهایی را برمی گرداند که توسط هر دو query ارائه شده.


SELECT empno FROM emp

        INTERSECT

        SELECT empno FROM oldemp;‎

عملگر MINUS

دستور زیر نتایج را با استفاده از عملگر MINUS با هم ترکیب کرده و تنها نتایج سطرهایی را برمی گرداند که توسط query اول ارائه شده (و نه query دوم)


SELECT empno FROM emp

        MINUS

        SELECT empno FROM oldemp;‎

مرتب سازی نتایج query

به منظور مرتب سازی نتایج یک query می توان از عبارت ORDER BY در دستور SELECT استفاده کرد.


مثال:

Query زیر کارکنان را با توجه به ترتیب صعودی درآمد (بالا رونده) مرتب می سازد.


select * from emp order by sal;‎

query زیر کارکنان را با توجه به ترتیب نزولی درآمد آن ها مرتب می سازد.


select * from emp order by sal desc;‎

مثال زیر کارکنان را با توجه به ترتیب صعودی اسم آن ها مرتب می سازد.


select * from emp order by ename;‎

در این مثال، query ابتدا کارکنان را با توجه ترتیب صعودی اسم آن ها مرتب می سازد. در صورتی که اسم کارکنان با هم یکسان بود، به مرتب سازی کارکنان با توجه به ترتیب نزولی درآمد آن ها می پردازد.


select * from emp order by ename, sal desc;‎

همچنین می توان بجای اسم ستون ها، مکان آن ها مشخص کرد. درست مشابه query زیر که کارکنان را بر اساس ترتیب صعودی اسم آن ها نمایش می دهد.


select * from emp order by 2;‎

query زیر ابتدا کارکنان را بر اساس ترتیب صعودی درآمد آن ها مرتب می سازد. اگر درآمد ها باهم یکسان بود، کارکنان را بر مبنای ترتیب صعودی اسم آن ها مرتب می کند.


select * from emp order by 3, 2;‎
1394/07/27 7455 1525
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...