Toán tử INTERSECT trong SQL Server
Intersect SQL Server là gì? Cách dùng Intersect trong SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
Theo lý thuyết về tập hợp (set), giao của hai tập hợp là một bộ sưu tập các giá trị phổ biến cho cả hai. Nói cách khác, giao của hai tập hợp là một nhóm phần tử tồn tại ở cả hai tập hợp.
SQL INTERSECT là gì?
Toán tử SQL INTERSECT kết hợp 2 lệnh lựa chọn và trả về chỉ dataset xuất hiện ở cả hai lệnh. Hiểu đơn giản, nó hoạt động như một giao điểm toán học. Về mặt toán học, giao điểm của A và B là dữ liệu chung của cả hai. Vì thế, khi cung cấp hai truy vấn lựa chọn, SQL INTERSECT sẽ chỉ trả về những hàng xuất hiện ở cả hai truy vấn SELECT. Tương tự toán tử UNION trong SQL, ngay cả toán tử INTERSECT cũng phải tuân thủ hai quy tắc để triển khai thành công:
- Số và thư tự của cột ở cả hai truy vấn phải giống nhau.
- Kiểu dữ liệu của cột tương ứng từ cả hai truy vấn lựa chọn phải tương thích với nhau.
Truy vấn INTERSECT

Minh họa kết quả trả về từ truy vấn INTERSECT
Giải thích: Truy vấn INTERSECT sẽ trả về các bản ghi nằm trong khu vực tô màu xanh. Các bản ghi này nằm trong cả CSDL1 và CSDL2.
Mỗi lệnh SELECT trong INTERSECT phải có cùng số cột trong bộ kết quả với kiểu dữ liệu giống nhau.
Cú pháp toán tử INTERSECT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucnFROM bang[WHERE dieu_kien]INTERSECTSELECT bieu_thuc1, bieu_thuc2, … bieu_thucnFROM bang[WHERE dieu_kien];
Tên biến hoặc giá trị biến
bieu_thuc
Cột hoặc giá trị mà bạn muốn so sánh giữa 2 lệnh SELECT. Chúng không nhất thiết phải nằm trong cùng 1 trường thông tin ở mỗi lệnh SELECT nhưng các cột tương ứng phải có dữ liệu giống nhau.
bang
Bảng muốn lấy bản ghi từ đó. 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.
Ví dụ - với 1 biểu thức
SELECT sanpham_idFROM sanphamINTERSECTSELECT sanpham_idFROM hangtonkho;
Ở ví dụ này, nếu sanpham_id xuất hiện ở cả bảng sanpham và hangtonkho thì nó sẽ nằm trong bộ kết quả của INTERSECT.
Giờ hãy thêm điều kiện WHERE vào truy vấn này.
SELECT sanpham_idFROM sanphamWHERE sanpham_id >= 50INTERSECTSELECT sanpham_idFROM hangtonkhoWHERE soluong >0;
Bộ dữ liệu thứ 1 sẽ lọc và trả về các bản ghi nằm trong bảng sanpham và sanpham_id lớn hơn hoặc bằng 50. Bộ dữ liệu thứ 2 sẽ lọc lấy từ bảng hangtonkho nếu số lượng lớn hơn 0.
Ví dụ - với nhiều biểu thức
SELECT danhba_id, ho, tenFROM danhbaWHERE ho = ‘Anderson’INTERSECTSELECT nhanvien_id, ho, tenFROM nhanvien;
Ở ví dụ này, truy vấn sẽ trả về kết quả giao nhau từ 2 lệnh SELECT. Nếu có bản ghi trong bảng danhba mà danhba_id, ho, ten trùng với nhanvien_id, ho, ten trong bảng nhanvien thì truy vấn INTERSECT sẽ trả về các bản ghi đó.
Ví dụ - dùng ORDER BY
Dùng mệnh đề ORDER BY với truy vấn INTERSECT để sắp xếp kết quả.
SELECT nhacung_id, nhacung_tenFROM nhacungWHERE nhacung_id > 500INTERSECTSELECT congty_id, congty_tenFROM congtyWHERE congty_ten in (‘Apple’, ‘Microsoft’, ‘SQL Server’)ORDER BY 2;
Vì tên cột ở 2 lệnh SELECT khác nhau nên sẽ dễ hơn nếu tham chiếu tới cột trong mệnh đề ORDER BY bằng vị trí của chúng trong bộ kết quả. Ở ví dụ trên, ta lọc kết quả nhacung_ten / congty_ten theo thứ tự tăng dần qua cụm từ ORDER BY 2.
Vì nhacung_ten / congty_ten đứng thứ 2 trong bộ kết quả.
Bài trước: Toán tử UNION ALL trong SQL Server
Bài sau: Toán tử EXCEPT trong SQL Server
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

Cách chữa phồng rộp da chân khi đi bộ nhiều, mang giày chật
Hôm qua 1 -

Cap về cà phê, stt về cà phê hay, ngắn gọn cho mọi tâm trạng
Hôm qua 1 -

Số nguyên là gì? Số nguyên dương là gì? Số nguyên âm là gì?
Hôm qua -

Cách không nhận tin nhắn người lạ trên Messenger
Hôm qua -

Cách tải video Facebook nhóm kín, tải video Facebook riêng tư
Hôm qua -

Công thức tính Diện tích hình vuông, tính Chu vi hình vuông
Hôm qua 2 -

Cách chuyển ảnh sang PDF trên iPhone cực đơn giản
Hôm qua -

Những bài thơ về Mẹ hay và ý nghĩa chạm tới trái tim người đọc
Hôm qua 2 -

Hướng dẫn tải Honor of Kings server Brazil
Hôm qua -

Thuộc tính Opacity/Transparency trong CSS
Hôm qua
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy