Toán tử SQL UNION
Toán tử UNION được sử dụng để kết hợp tập kết quả của hai hoặc nhiều câu lệnh SELECT.
- Mỗi câu lệnh SELECT trong UNION phải có cùng số cột
- Các cột cũng phải có kiểu dữ liệu tương tự
- Các cột trong mỗi câu lệnh SELECT cũng phải theo cùng một thứ tự
Cú pháp UNION
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
UNION ALL Cú pháp
Toán tử UNION chỉ chọn các giá trị riêng biệt theo mặc định. Để cho phép các giá trị trùng lặp, hãy sử dụng UNION ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Lưu ý: Tên cột trong tập hợp kết quả thường bằng với tên cột trong câu lệnh SELECT đầu tiên trong UNION.
Cơ sở dữ liệu Demo
Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng.
Dưới đây là lựa chọn từ bảng "Khách hàng":
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Và lựa chọn từ bảng "Nhà cung cấp":
SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
Ví dụ về SQL UNION
Câu lệnh SQL sau trả về các thành phố (chỉ các giá trị riêng biệt) từ cả bảng "Khách hàng" và "Nhà cung cấp":
Thí dụ
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;
Lưu ý: Nếu một số khách hàng hoặc nhà cung cấp có cùng thành phố, mỗi thành phố sẽ chỉ được liệt kê một lần, vì UNION chỉ chọn các giá trị riêng biệt. Sử dụng UNION ALL để chọn các giá trị trùng lặp!
Ví dụ về SQL UNION ALL
Câu lệnh SQL sau trả về các thành phố (cũng có giá trị trùng lặp) từ cả bảng "Khách hàng" và "Nhà cung cấp":
Thí dụ
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
UNION SQL với WHERE
Câu lệnh SQL sau trả về các thành phố của Đức (chỉ các giá trị khác biệt) từ cả bảng "Khách hàng" và "Nhà cung cấp":
Thí dụ
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
UNION SQL TẤT CẢ VỚI WHERE
Câu lệnh SQL sau trả về các thành phố của Đức (cũng có giá trị trùng lặp) từ cả bảng "Khách hàng" và "Nhà cung cấp":
Thí dụ
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
Một ví dụ khác về UNION
Câu lệnh SQL sau liệt kê tất cả khách hàng và nhà cung cấp:
Thí dụ
SELECT 'Customer' AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT 'Supplier', ContactName, City, Country
FROM Suppliers;
Lưu ý "Loại AS" ở trên - nó là một bí danh. Bí danh SQL được sử dụng để đặt tên tạm thời cho bảng hoặc cột. Bí danh chỉ tồn tại trong thời gian truy vấn. Vì vậy, ở đây chúng ta đã tạo một cột tạm thời có tên "Loại", liệt kê danh sách người liên hệ là "Khách hàng" hay "Nhà cung cấp".
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
#OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #tự học oracle