Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

ตัวดำเนินการ UNION ใน SQL Server

UNION ใช้ทำอะไร?

UNION รวมผลลัพธ์ของ 2 หรือหลาย SELECT เป็นชุดเดียว และ ลบแถวซ้ำ (Distinct) ออกโดยอัตโนมัติ

รูปแบบคำสั่ง

SELECT expr1, expr2, ..., expr_n
FROM table1
[WHERE condition]
UNION
SELECT expr1, expr2, ..., expr_n
FROM table2
[WHERE condition];

กฎสำคัญ

  1. ทุก SELECT ต้องมี จำนวนคอลัมน์เท่ากัน
  2. คอลัมน์ที่ตรงกันต้องมี ชนิดข้อมูลเข้ากันได้
  3. คอลัมน์ในผลลัพธ์จะใช้ชื่อจาก SELECT แรก
  4. ลบแถวซ้ำทั้งหมด (เหมือน DISTINCT)

ตัวอย่าง

1. รวม 1 คอลัมน์

SELECT sanpham_id FROM sanpham
UNION
SELECT sanpham_id FROM hangtonkho;

คืน sanpham_id ที่ไม่ซ้ำจากทั้งสองตาราง

2. ใช้ ORDER BY

SELECT danhba_id, danhba_ten
FROM danhba
WHERE ten_trang = 'QuanTriMang.com'
UNION
SELECT congty_id, congty_ten
FROM congty
WHERE ten_trang = 'TrangCuaBan.com'
ORDER BY 2;

ORDER BY 2 เรียงตามคอลัมน์ที่ 2 (danhba_ten/congty_ten) เนื่องจากชื่อคอลัมน์ต่างกัน

หมายเหตุ: หากต้องการเก็บแถวซ้ำ ใช้ UNION ALL แทน