Toán tử UNION trong SQL Server
Union trong SQL Server là gì? Cách dùng Union SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Bạn sẽ không khó xin được việc làm tốt với mức lương cao nếu biết lập trình. Đây hiện đang là một trong số ngành được săn đón nhất hiện nay. Chì cần là một lập trình viên mới ra trường nhưng có kỹ năng tốt và biết cách xây dưng những sản phẩm hữu ích theo nhu cầu thị trường, bạn dễ dàng được nhận sau một buổi phỏng vấn. Thật tuyệt phải không?
Thế giới lập trình vô cùng đa dạng về ngôn ngữ phát triển. Bạn chỉ cần xác định mục tiêu muốn theo đuổi để chọn được ngôn ngữ phù hợp. Tuy nhiên, dù chọn ngôn ngữ nào, bạn cũng cần biết tới SQL Server.
Học SQL Server không khó. Hãy bắt đầu từ những kiến thức cơ bản nhất. Ở bài viết này là toán tử UNION trong SQL Server.
Toán tử UNION ALL chọn các trường từ hai hoặc nhiều bảng tương tự như UNION. Tuy nhiên, khác UNION, UNION ALL không bỏ qua các trường trùng lặp.
Toán tử UNION được dùng để kết hợp 2 bộ kết quả từ 2 hoặc nhiều lệnh SELECT. Nó sẽ xóa các hàng trùng trong các lệnh SELECT này.
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
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE dieu_kien]
UNION
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucn
FROM bang
[WHERE
dieu_kien];
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 xóa các hàng trùng nhau.
- Xem thêm toán tử UNION ALL.
Ví dụ - trả về một trường thông tin
Ví dụ toán tử UNION trả về 1 trường từ nhiều lệnh SELECT (và các trường có cùng kiểu dữ liệu).
SELECT sanpham_id
FROM sanpham
UNION
SELECT sanpham_id
FROM hangtonkho;
Ở ví dụ trên, nếu có sanpham_id nào xuất hiện ở cả bảng sanpham và hangtonkho, thì sẽ chỉ còn 1 sanpham_id xuất hiện trong bộ kết quả. Nếu không muốn loại bỏ bản ghi trùng, hãy dùng toán tử UNION ALL.
Ví dụ - dùng ORDER BY
Toán tử UNION 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
SELECT congty_id, congty_ten
FROM congty
WHERE ten_trang = ‘TrangCuaBan.com’
ORDER B
Y 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ả.
Áp dụng UNION cho nhiều hơn hai truy vấn
Bạn có thể dùng UNION để kết hợp kết quả của nhiều truy vấn nếu cần. Ví dụ một bảng về các loài vật nuôi, bạn có thể làm như sau:
SELECT DogName AS PetName
FROM Dogs
UNION ALL
SELECT CatName
FROM Cats
UNION ALL
SELECT BirdName
FROM Birds;
So sánh SQL UNION và UNION ALL
SQL UNION | SQL UNION ALL |
Nó chỉ trả về các hàng riêng biệt từ tập kết quả của hai truy vấn. | Nó trả về những giá trị trùng lặp từ tập kết quả của hai truy vấn. |
Chậm hơn so với toán tử UNION ALL . | Triển khai nhanh vì không cần bộ lọc tập kết quả bằng cách loại bỏ các giá trị trùng lặp. |
Để cải thiện hiệu suất, bạn nên dùng UNION ALL khi biết các trường lựa chọn sẽ chỉ có những giá trị độc đáo.
So sánh SQL UNION và SQL JOIN
SQL JOIN | SQL UNION |
Nó được dùng để kết hợp dữ liệu vào các cột mới từ những bảng khác nhau. | Nó được dùng để kết hợp dữ liệu vào các hàng mới từ kết quả của những truy vấn khác nhau. |
Nó dùng cột thông dụng ở cả hai bảng để tìm nạp dữ liệu. | Nó chọn dữ liệu từ hai bảng và kết hợp chúng trong kết quả. |
Thoải mái chia cột trong bảng. | Số lượng cột phải giống nhau ở cả hai bảng. |
Kiểu cột dữ liệu có thể khác nhau. | Kiểu dữ liệu của cột lý tưởng là phải giống nhau (ngoại trừ một số database như SQLite). |
Bài trước: Lệnh DELETE TOP trong SQL Server
Bài sau: Toán tử UNION ALL trong SQL Server
Bạn nên đọc
Cũ vẫn chất
-
13 loài vật có khả năng ngụy trang siêu đẳng, gần như vô hình trong môi trường tự nhiên
Hôm qua -
Công thức tính thể tích hình chóp, chu vi hình chóp
Hôm qua -
Những cách đơn giản để rèn luyện kỹ năng viết
Hôm qua -
Hướng dẫn chia sẻ tin nhắn trên Zalo
Hôm qua -
Khám phá những vị tướng out meta mùa S1 2023 Liên Quân Mobile
Hôm qua -
Tổ hợp những phím tắt trên Zalo phiên bản máy tính
Hôm qua -
8 cách sửa lỗi “Excel Cannot Open Because The File Format Is Not Valid”
Hôm qua -
Hướng dẫn vào BIOS trên các dòng máy tính khác nhau
Hôm qua 6 -
Mời chơi game khủng long mất mạng phiên bản 3D siêu cuốn ngay trên web
Hôm qua -
19+ điều thú vị giúp bạn "giết" thời gian khi ở một mình
Hôm qua