سبد (0)

تبلیغات

عملگر union در SQL

عملگر UNION دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.


عملگر UNION

Wiki

عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.

توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند. (Order By)

فرم عملگر UNION:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

نکته: عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از UNION ALL استفاده کنید.

فرم عملگر UNION ALL:

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

نام ستون ها در جدول نتایج همیشه برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.


مثال:

Wiki

به جداول زیر نگاه کنید: 

1- جدول کارمندان نروژی:

E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

2- جدول کارمندان آمریکایی:

E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen

می خواهیم لیست اسامی کارمندان امریکایی و نروژی را به صورت متمایز ( بدون تکرار) داشته باشیم.

از دستور زیر استفاده می کنیم:

SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

جدول نتایج به شکل زیر خواهد بود:

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

توجه:این دستور نمی تواند برای نمایش دادن اسامی تمام کارکنان امریکایی و نروژی استفاده شود. در مثال فوق دو کارمند با نام یکسان داریم و تنها بکی از آنها در جدول نتایج آمده است. دستور UNION تنها داده ها را به صورت متمایز (بدون تکرار) بر می گرداند.


مثال:

Wiki

حال می خواهیم تمامی کارمندان آمریکایی و نروژی را لیست کنیم از دستور زیر استفاده می کنیم:

SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

نتیجه:

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen

دیدگاه‌ها  

0 # mr.not found 1397-04-20 23:28
سلام خدا خیرت بده مطلبت مفید بود و کار راه انداز
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # eqbali 1395-04-10 22:36
سلام بسیار تشکر از زحماتتان!
من دو جدول دارم که می خواهم با استفاده از دستور UNION ALL رکوردهای آنها را یکجا نمایش بدهم ولی می خواهم هنگام استخراج داده ها یک فیلد جدیدی نتیجه ای دستور UNION ALL ایجاد کنم که در آن فیلد شماره ردیف رکوردها ثبت شود.
این کار را نتوانستم انجام دهم اگر کمک کنید بسیار ممنون می شوم. البته من در VB.Net کار می کنم.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1395-04-14 22:20
با سلام.
شما می‌تونی از تابع Row_number استفاده کنی. کد سمپل زیر رو نگاه کنید:

SELECT ROW_NUMBER()
OVER (ORDER BY EmployeeName) AS Row,
EmployeeId, EmployeeName, Salary
FROM Employees
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # apn 230 1395-05-05 11:06
ممنونم خیلی مفید بود
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # فروغی-- 1396-04-25 16:57
سلام.ببخشید اگه بخواهیم مشخص کنیم که چه کتابی دست چه دانش آموزی هست باید چه کدی بنویسیم؟من دو جدول کتاب و دانش آموز ایجاد کردم به علاوه ی جدول رابط که pk هاشون بهم وصله به عنوان fk
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # امیر پهلوان صادق 1396-04-26 08:44
سلام، قبل از هر چیز باید با دستور Join آشنا باشید. بنابراین مطلب زیر رو با دقت مطالعه کنید:
http://beyamooz.com/sql/101-advanced/264-%D9%BE%DB%8C%D9%88%D9%86%D8%AF-%D8%A8%DB%8C%D9%86-%D8%AC%D8%AF%D8%A7%D9%88%D9%84-%D8%AF%D8%B1-sql
اما برای بدست آوردن اینکه چه کتابی در اختیار چه دانش آموزی است، کافی است بین سه جدول ذکر شده join بزنید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی SQL

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی