SS090404 - ความแตกต่างระหว่าง UNION และ UNION ALL

Modified on 2009/04/10 17:45 by ninefyi — Categorized as: SQL Server

คำสั่ง UNION หรือ UNION ALL เป็นคำสั่งที่ใช้แสดงข้อมูลของตั้งแต่สองตารางขึ้นไป โดยที่ต้องเลือก column ที่จะแสดงผลที่มีข้อมูลชนิดเดียวกัน
เพียงแต่ คำสั่ง UNION จะให้ผลลัพธ์เหมือนกับการทำ SELECT DISTINCT คือจะแสดงข้อมูลที่ไม่ซ้ำกันออกมา และก็มีประสิทธิ์ภาพที่ดีกว่าการใช้ SELECT DISTINCT
ลองดูจาก ตย.

/* Declare First Table */
CREATE TABLE Table1(Column1 VARCHAR(1))
GO

INSERT INTO Table1
SELECT 'A'
UNION ALL
SELECT 'B'
UNION ALL
SELECT 'C'
UNION ALL
SELECT 'D'
UNION ALL
SELECT 'E'
GO

/* Declare Second Table */
CREATE TABLE Table2(Column1 VARCHAR(1))
GO

INSERT INTO Table2
SELECT 'A'
UNION ALL
SELECT 'C'
UNION ALL
SELECT 'E'
GO

/* Check the data using SELECT */
SELECT *
FROM Table1
SELECT *
FROM Table2

/* UNION ALL */
SELECT *
FROM Table1
UNION ALL
SELECT *
FROM Table2

/* UNION */
SELECT *
FROM Table1
UNION
SELECT *
FROM Table2
GO 

DROP TABLE Table1
GO

DROP TABLE Table2
GO