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

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

UNION ALL ใช้ทำอะไร?

UNION ALL รวมผลลัพธ์ของหลาย SELECT เก็บแถวซ้ำไว้ทั้งหมด (ไม่ทำ Distinct) เร็วกว่า UNION

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

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

กฎ (เหมือน UNION)

  1. จำนวนคอลัมน์เท่ากันทุก SELECT
  2. ชนิดข้อมูลคอลัมน์ที่ตรงกันเข้ากันได้

ตัวอย่าง

1. รวม 1 คอลัมน์ (เก็บซ้ำ)

SELECT sanpham_id FROM sanpham
UNION ALL
SELECT sanpham_id FROM hangtonkho;

ถ้า sanpham_id อยู่ในทั้งสองตาราง จะปรากฏ 2 ครั้งในผลลัพธ์

2. ใช้ ORDER BY

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

UNION vs UNION ALL

คุณสมบัติUNIONUNION ALL
ลบแถวซ้ำใช่ (Distinct)ไม่ (เก็บทั้งหมด)
ความเร็วช้ากว่า (ต้อง sort/hash)เร็วกว่า
ใช้เมื่อต้องการค่า uniqueต้องการทุกแถว / รู้ว่าไม่ซ้ำ