hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Micrsoft SQL Server
Kết hợp dữ liệu sử dụng (SET OPERATORS) UNION, INTERSECT và EXCEPT trong SQL Server

Kết hợp dữ liệu sử dụng (SET OPERATORS) UNION, INTERSECT và EXCEPT trong SQL Server

  • 29-05-2022
  • Toanngo92
  • 0 Comments

các toán tử tập hợp được SQL Server cung cấp:

  • UNION
  • INTERSECT
  • EXCEPT

Mục lục

  • Toán tử Union (hợp nhất)
  • Toán tử INTERSECT ( giao điểm)
  • Toán tử EXCEPT (ngoại trừ)

Toán tử Union (hợp nhất)

Kết quả từ hai câu lệnh truy vấn khác nhau có thể được kết hợp thành một tập kết quả duy nhất bằng cách sử dụng toán tử UNION. Các câu lệnh truy vấn phải có kiểu cột tương thích và số cột bằng nhau. Các tên cột có thể khác nhau trong mỗi câu lệnh, nhưng các kiểu dữ liệu phải tương thích. Bằng các kiểu dữ liệu tương thích, điều đó có nghĩa là có thể chuyển đổi nội dung của một trong các cột thành một cột khác. Ví dụ, nếu một câu lệnh truy vấn có kiểu dữ liệu là int và một câu lệnh truy vấn khác có kiểu dữ liệu là money, chúng tương thích với nhau và sự kết hợp có thể diễn ra giữa chúng vì dữ liệu int có thể được chuyển đổi thành dữ liệu money

Cú pháp:

Query_Statement1 UNION [ALL] Query Statment_2

Ví dụ:

SELECT Product.ProductId FROM Production.Product UNION SELECT ProductId FROM Sales.SalesOrderDetail

Câu lệnh trên sẽ lấy ra toàn bộ dữ liệu cột ProductId của cả 2 bảng mà khớp nhau. Nếu bạn sử dụng mệnh đề ALL, tất cả các bảng sẽ xuất hiện trong tập kết quả bao gồm cả các bản ghi bị trùng nhau (Trong orer detail có nhiều Order bán cùng một Product).

Ví dụ UNION ALL:

SELECT Product.ProductId FROM Production.Product UNION ALL SELECT ProductId FROM Sales.SalesOrderDetail

Mặc định, toán tử UNION xóa các bản ghi thừa trong tập kết quả. Tuy nhiene, nếu bổ sung mệnh đề ALL vào toán tử UNION, tất cả bản ghi sẽ được trả ra.

Khác biệt giữa UNION và JOIN:

Các phép JOIN và UNION có thể được sử dụng để kết hợp dữ liệu từ một hoặc nhiều bảng. Sự khác biệt nằm ở cách dữ liệu được kết hợp.

Nói một cách dễ hiểu, nối kết hợp dữ liệu vào các cột mới. Nếu hai bảng được nối với nhau, thì dữ liệu từ bảng đầu tiên được hiển thị trong một tập hợp cột cùng với cột của bảng thứ hai trong cùng một hàng.

Các liên hiệp kết hợp dữ liệu thành các hàng mới. Nếu hai bảng được “hợp nhất” với nhau, thì dữ liệu từ bảng đầu tiên nằm trong một tập hợp các hàng và dữ liệu từ bảng thứ hai trong một tập hợp khác. Các hàng có cùng kết quả.

Tham khảo: https://stackoverflow.com/questions/905379/what-is-the-difference-between-join-and-union#:~:text=The%20difference%20lies%20in%20how,combine%20data%20into%20new%20rows.

Toán tử INTERSECT ( giao điểm)

Giả sử tình huống có 2 bảng Product và SalesOrderDetail và muốn hiển thị tất cả các hàng chung trong cả 2 bảng. Để làm việc này, bạn có thể sử dụng toán tử INTERSECT. Toán tử INTERSECT được sử dụng với 2 câu lệnh truy vấn đề trả ra 1 tập kết quả riêng biệt với các hàng chung cho cả hai câu lệnh truy vấn.

Cú pháp:

Query_statement1 INTERSECT Query_statement2

Ví dụ:

SELECT Product.ProductId FROM Production.Product INTERSECT SELECT ProductId FROM Sales.SalesOrderDetail

Kết quả của giao điểm giữa bảng Production.Product và Sales.SalesOrderDetail sẽ chỉ có các productid mà khớp bản ghi ở trong bảng product. Trong một doanh nghiệp lớn, sẽ có số lượng lớn các bản ghi dữ liệu được lưu trữ trong database. Thay bằng việc lưu trữ toàn bộ dữ liệu trong một bảng đơn, nó có thể được chia thành vài bảng khác nhau. Khi dữ liệu được lưu trong các bảng riêng biệt, SQL Server có nhiều cách để kết hợp dữ liệu từ bảng như JOIN,UNION,INTERSECT .

Các quy tắc sử dụng INTERSECT:

  • Số lượng cột và thứ tự chúng được đưa ra phải giống nhau trong cả hai truy vấn
  • Kiểu dữ liệu của các cột đang được sử dụng phải tương thích

Toán tử EXCEPT (ngoại trừ)

Toán tử EXCEPT trả ra toàn bộ các hảng riêng biệt từ caua truy vấn bên trái toán tử này và loại bỏ toàn bộ các bản ghi khỏi tập kết quả nếu chúng so khớp với điều kiện bên phải toán tử EXCEPT

Cú pháp:

Query_statement1 EXCEPT Query_statement2

Hai quy tắc áp dụng cho toán tử INTERSECT cũng áp dụng cho toán tử EXCEPT:

  • Số lượng cột và thứ tự chúng được đưa ra phải giống nhau trong cả hai truy vấn
  • Kiểu dữ liệu của các cột đang được sử dụng phải tương thích

Ví dụ:

SELECT Product.ProductId FROM Production.Product EXCEPT SELECT ProductId FROM Sales.SalesOrderDetail

Với ví dụ phía trên, chỉ những bản ghi từ bảng Production.Product mà không xuất hiện trong bảng Sales.SalesOrderDetail được trả ra, ta có thể thấy mệnh đề này có thể được sử dụng trong nghiệp vụ phân tích, tìm kiếm sản phẩm chưa bán được hàng.

Chúng ta thấy toán tử EXCEPT lấy ra toàn bộ các bản ghi từ bảng đầu tiên loại trừ những kết quả so khớp ở bảng số 2, vì vậy, khi sử dụng EXCEPT, thứ tự của 2 bảng trong truy vấn là quan trọng, còn với INTERSECT, không quan trọng bảng nào được xác định trước.

Bài viết liên quan:

PolyBase, Query Store, và Stretch Database trong SQL Server
Dữ liệu JSON trong SQL Server
Các tính năng nâng cao SQL trong SQL Server 2019
Giới thiệu Azure SQL
Xử lý lỗi và TRY CATCH trong SQL Server
Transaction trong SQL Server
FUNCTION (hàm) trong SQL Server
Lập trình và control of flow trong Transact SQL
Trigger trong SQL Server
Index trong SQL Server
Truy vấn metadata và Dynamyic Management Object trong SQL Server
Stored Procedure trong SQL Server

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×