Toán tử UNION ALL trong SQL Server
UNION ALL trong SQL Server là gì? Cách dùng UNION ALL SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
SQL Server có rất nhiều kiến thức thú vị cho bạn tìm hiểu. Bên cạnh các hàm thông dụng, toán tử là nội dung bạn nên tìm hiểu khi sử dụng SQL Server.
UNION và UNION ALL là hai toán tử SQL cơ bản nhất được dùng trong database để kết hợp nhóm kết quả từ nhiều bảng. Khác với toán tử UNION, toán tử UNION ALL trả về tất cả các hàng từ truy vấn và không xóa các hàng trùng lặp.
Mỗi lệnh SELECT trong toán tử UNION phải có cùng số cột trong bộ kết quả với kiểu dữ liệu tương ứng.
Cú pháp toán tử UNION ALL
SELECTbieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
UNION ALL
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_k
ien];
Tên biến hoặc giá trị biến
bieu_thuc1, bieu_thuc2, … bieu_thucn
Cột hoặc giá trị tính toán muốn lấy.
bang
Bảng muốn lấy bản ghi. Phải có ít nhất 1 bảng trong mệnh đề FROM.
WHERE dieu_kien
Tùy chọn. Điều kiện phải đáp ứng để bản ghi được chọn.
Lưu ý:
- 2 lệnh SELECT phải có cùng số biểu thức
- Số cột tương ứng trong mỗi lệnh SELECT phải có cùng kiểu dữ liệu
- Toán tử UNION không xóa các hàng trùng nhau.
Ví dụ - trả về một trường thông tin
SELECT sanpham_id
FROM sanpham
UNION ALL
SELECT sanpham_id
FROM
hangtonkho;
Ví dụ này trả về nhiều sanpham_id trong bộ kết quả nếu chúng có xuất hiện trong cả bảng sanpham và hangtonkho. Nếu muốn xóa các bản trùng lặp, hãy dùng toàn tử UNION.
Ví dụ - dùng ORDER BY
Toán tử UNION ALL có thể dùng mệnh đề ORDER BY để sắp xếp kết quả truy vấn.
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;
Ở ví dụ này, vì tên cột ở 2 lệnh SELECT khác nhau nên sẽ dễ hơn khi tham chiếu tới cột trong lệnh ORDER BY bằng vị trí trong bộ kết quả. Trong ví dụ trên, ta lọc kết quả theo danhba_ten / congty_ten theo thứ tự tăng dần, như đã nói bằng cụm từ ORDER BY 2.
danhba_ten / congty_ten nằm ở vị trí thứ 2 trong bộ kết quả.
Sự khác biệt giữa Union và Union All in SQL Server
UNION | UNION ALL |
UNION kết hợp nhóm kết quả từ nhiều bảng và trả về các bản ghi riêng biệt vào một nhóm kết quả duy nhất. | UNION ALL kết hợp nhóm kết quả từ nhiều bảng và trả về toàn bộ bản ghi vào một nhóm kết quả duy nhất. |
Cú pháp cơ bản của toán tử UNION:
| Cú pháp cơ bản của toán tử UNION ALL:
|
Nó có tính năng mặc định loại bỏ các hàng trùng lặp từ đầu ra. | Không có tính năng mặc định loại bỏ các hàng trùng lặp. |
Hiệu suất chậm vì nó cần thời gian để tìm, rồi loại bỏ các bản ghi trùng lặp. | Hiệu suất nhanh vì không xóa các hàng trùng lặp. |
Hầu hết người dùng database đều thích sử dụng toán tử này. | Hầu hết người dùng database không thích dùng toán tử này. |
Để hiểu rõ hơn về sự khác biệt giữa Union và Union All SQL Server, hãy cùng nhau xem xét ví dụ sau:
Giả sử bạn có bảng tên Student và Student2, chứa dữ liệu sau:
Bảng: Student
Bảng: Student2
Lệnh SQL sau trả về tên riêng của các thành phố từ cả hai bảng bằng truy vấn UNION:
SELECT City FROM student
UNION
SELECT City FROM student2
ORDER BY City;
Sau khi chạy lệnh trên, bạn sẽ nhận được kết quả bên dưới vì toán tử Union chỉ trả về giá trị riêng biệt.
Lệnh SQL sau trả về tất cả tên thành phố bao gồm các những giá trị trùng lặp từ cả hai bảng bằng truy vấn UNION ALL:
SELECT City FROM student
UNION ALL
SELECT City FROM student2
ORDER BY City;
Sau khi chạy lệnh trên, bạn sẽ nhận được kết quả dưới đây vì toán tử Union All trả về toàn bộ bản ghi mà không cần phải loại bỏ các giá trị riêng biệt.
Bài trước: Toán tử UNION trong SQL Server
Bài sau: Toán tử INTERSECT trong SQL Server
Bạn nên đọc
- Thang NguyenThích · Phản hồi · 0 · 03/07/23
- Thang NguyenThích · Phản hồi · 0 · 03/07/23
- Thang NguyenThích · Phản hồi · 0 · 03/07/23
Cũ vẫn chất
-
Game ‘Khủng long mất mạng’ trên Google Chrome được 3D hóa tuyệt đẹp, mời trải nghiệm
Hôm qua -
Code Mobile Legends mới nhất 12/2024
Hôm qua -
Cách gán địa chỉ IP tĩnh trong Windows 11, 10, 8, 7, XP hoặc Vista
Hôm qua -
Những tấm gương điển hình của tinh thần vượt lên số phận
Hôm qua -
Cách đổi màu phông nền trong Photoshop
Hôm qua -
Code Kiếm Vương 1 - ADNX Mobile mới nhất
Hôm qua -
90+ phím tắt Google Docs cho Windows và Mac
Hôm qua -
Tổng hợp code Đại Chiến Tam Quốc mới nhất
Hôm qua -
Last Name, First Name là gì? Cách điền chúng chính xác nhất
Hôm qua -
Cách dùng hàm IMPORTRANGE trong Google Sheets
Hôm qua