ประกาศ UNION และ UNION ALL ใน SQL
- หน้าก่อน SQL Full Join
- หน้าต่อไป SQL Select Into
ประกาศ UNION ใน SQL
ประกาศ UNION ใช้เพื่อรวมผลลัพธ์ของ SELECT สองหรือมากกว่า
โปรดสังเกตว่า SELECT ใน UNION ต้องมีหลักข้อมูลในคอลัมน์ที่เท่ากัน และคอลัมน์ต้องมีชนิดข้อมูลที่คล้ายกัน พร้อมทั้งต้องมีลำดับคอลัมน์ที่เหมือนกันในแต่ละ SELECT
SQL UNION ศัพท์
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
หมายเหตุ:โดยเริ่มต้น ปฏิสัมพันธ์ UNION จะเลือกค่าที่ต่างกัน. หากอนุญาตให้มีค่าที่ซ้ำ ใช้ UNION ALL
SQL UNION ALL ศัพท์
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
นอกจากนี้ ชื่อคอลัมน์ในผลลัพธ์ของ UNION จะเหมือนกันกับชื่อคอลัมน์ในคำสั่ง SELECT แรกของ UNION
ตัวอย่างที่ใช้ตารางต้นฐานในตอนนี้:
Employees_China:
E_ID | E_Name |
---|---|
01 | Zhang, Hua |
02 | Wang, Wei |
03 | Carter, Thomas |
04 | Yang, Ming |
Employees_USA:
E_ID | E_Name |
---|---|
01 | Adams, John |
02 | Bush, George |
03 | Carter, Thomas |
04 | Gates, Bill |
ใช้คำสั่ง UNION
ตัวอย่าง
แสดงรายชื่อพนักงานที่ต่างกันในประเทศจีนและสหรัฐอเมริกา
SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA
ผลลัพธ์
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Gates, Bill |
หมายเหตุ:คำสั่งนี้ไม่สามารถแสดงพนักงานทั้งหมดในประเทศจีนและสหรัฐอเมริกาได้ ในตัวอย่างที่แสดงด้านบน เรามีชื่อพนักงานที่เหมือนกันสองคน แต่มีเพียงคนเดียวที่ถูกแสดงออกมา. คำสั่ง UNION จะเลือกค่าที่ต่างกันเท่านั้น
UNION ALL
คำสั่ง UNION ALL และคำสั่ง UNION เกือบเหมือนกัน แต่คำสั่ง UNION ALL จะแสดงทุกค่า
SQL Statement 1 UNION ALL SQL Statement 2
ใช้คำสั่ง UNION ALL
ตัวอย่าง:
แสดงรายชื่อพนักงานทั้งหมดในประเทศจีนและสหรัฐอเมริกา
SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA
ผลลัพธ์
E_Name |
---|
Zhang, Hua |
Wang, Wei |
Carter, Thomas |
Yang, Ming |
Adams, John |
Bush, George |
Carter, Thomas |
Gates, Bill |
- หน้าก่อน SQL Full Join
- หน้าต่อไป SQL Select Into