SELECT DISTINCT Trong SQL Server - Comdy

SELECT DISTINCT trong SQL Server

Table of Contents

Toggle
  • SELECT DISTINCT trong SQL Server
    • Giới thiệu về mệnh đề SELECT DISTINCT trong SQL Server
    • Ví dụ về SELECT DISTINCT trong SQL Server
      • SELECT DISTINCT một cột
      • SELECT DISTINCT nhiều cột
      • SELECT DISTINCT với giá trị null
    • SELECT DISTINCT với GROUP BY

Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng mệnh đề SELECT DISTINCT trong SQL Server để truy xuất các giá trị riêng biệt duy nhất trong danh sách các cột được chỉ định.

Giới thiệu về mệnh đề SELECT DISTINCT trong SQL Server

Đôi khi, bạn có thể chỉ muốn nhận các giá trị riêng biệt trong một cột được chỉ định của bảng. Để làm điều này, bạn sử dụng mệnh đề SELECT DISTINCT như sau:

SELECT DISTINCT column_name FROM table_name;

Truy vấn chỉ trả về các giá trị riêng biệt trong cột được chỉ định. Nói cách khác, nó loại bỏ các giá trị trùng lặp trong cột khỏi tập kết quả.

Nếu bạn sử dụng nhiều cột như sau:

SELECT DISTINCT column_name1, column_name2 , ... FROM table_name;

Truy vấn sử dụng kết hợp các giá trị trong tất cả các cột được chỉ định trong mệnh đề SELECT để đánh giá tính duy nhất.

Nếu bạn áp dụng mệnh đề DISTINCT cho một cột NULL, mệnh đề DISTINCT sẽ chỉ giữ một giá trị NULL và loại bỏ những giá trị NULL khác. Nói cách khác, mệnh đề DISTINCT coi tất cả các giá trị NULL là cùng một giá trị.

Ví dụ về SELECT DISTINCT trong SQL Server

Chúng tôi sẽ sử dụng bảng customers từ cơ sở dữ liệu mẫu để làm ví dụ minh họa cho SELECT DISTINCT trong SQL Server.

Bảng customers trong cơ sở dữ liệu mẫu trong SQL Server

SELECT DISTINCT một cột

Câu lệnh sau trả về tất cả các thành phố của tất cả các khách hàng trong bảng customers:

SELECT city FROM sales.customers ORDER BY city;

Đây là kết quả:

SELECT DISTINCT một cột

Như bạn có thể thấy trong kết quả đầu ra, các thành phố bị trùng lặp.

Để có được các thành phố riêng biệt không bị trùng lặp, bạn thêm từ khóa DISTINCT như sau:

SELECT DISTINCT city FROM sales.customers ORDER BY city;

Đây là kết quả:

SELECT DISTINCT một cột

Bây giờ, truy vấn trả về một giá trị riêng cho từng thành phố. Nói cách khác, nó đã xóa tất cả các thành phố trùng lặp khỏi tập kết quả.

SELECT DISTINCT nhiều cột

Câu lệnh này trả về tất cả các thành phố và tiểu bang của tất cả các khách hàng:

SELECT city, state FROM sales.customers ORDER BY city, state;

Đây là kết quả:

SELECT DISTINCT nhiều cột

Câu lệnh sau đây trả về thành phố và tiểu bang riêng biệt không trùng lặp của tất cả các khách hàng.

SELECT DISTINCT city, state FROM sales.customers

Đây là kết quả:

SELECT DISTINCT nhiều cột

Trong ví dụ này, câu lệnh đã sử dụng kết hợp các giá trị trong cả hai cột city và state để đánh giá trùng lặp.

SELECT DISTINCT với giá trị null

Ví dụ sau đây trả về các số điện thoại riêng biệt không trùng lắp của khách hàng:

SELECT DISTINCT phone FROM sales.customers ORDER BY phone;

Đây là kết quả:

SELECT DISTINCT với giá trị null

Trong ví dụ này, mệnh đề DISTINCT chỉ giữ một giá trị NULL trong cột phone và loại bỏ các giá trị NULL khác.

SELECT DISTINCT với GROUP BY

Câu lệnh sau sử dụng mệnh đề GROUP BY để trả về các thành phố riêng biệt cùng với mã trạng thái và mã zip từ bảng sales.customers:

SELECT city, state, zip_code FROM sales.customers GROUP BY city, state, zip_code ORDER BY city, state, zip_code

Đây là kết quả:

DISTINCT với GROUP BY

Nó tương đương với truy vấn sau sử dụng toán tử DISTINCT:

SELECT DISTINCT city, state, zip_code FROM sales.customers;

Cả hai mệnh đề DISTINCT và GROUP BY làm giảm số lượng bản ghi trả về trong tập kết quả bằng cách loại bỏ các bản ghi trùng lặp.

Tuy nhiên, bạn nên sử dụng mệnh đề GROUP BY khi bạn muốn áp dụng các hàm tập hợp trên một hoặc nhiều cột.

Trong hướng dẫn này, bạn đã học cách sử dụng mệnh đề SELECT DISTINCT trong SQL Server để truy xuất các giá trị riêng biệt trong danh sách các cột được chỉ định.

Từ khóa » Câu Lệnh Select Distinct Trong Sql