SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite Chọn riêng biệt

Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite SELECT DISTINCT mệnh đề để loại bỏ các hàng trùng lặp trong tập kết quả.

Giới thiệu về SQLite SELECT DISTINCT mệnh đề

DISTINCT mệnh đề là một mệnh đề tùy chọn của SELECT tuyên bố. DISTINCT mệnh đề cho phép bạn loại bỏ các hàng trùng lặp trong tập kết quả.

Câu lệnh sau minh họa cú pháp của DISTINCT mệnh đề:

SELECT DISTINCT	select_list
FROM table;Code language: SQL (Structured Query Language) (sql)

Trong cú pháp này:

  • Đầu tiên, DISTINCT mệnh đề phải xuất hiện ngay sau SELECT từ khóa.
  • Thứ hai, bạn đặt một cột hoặc danh sách các cột sau DISTINCT từ khóa. Nếu bạn sử dụng một cột, SQLite sử dụng các giá trị trong cột đó để đánh giá trùng lặp. Trong trường hợp bạn sử dụng nhiều cột, SQLite sử dụng kết hợp các giá trị trong các cột này để đánh giá trùng lặp.

SQLite coi NULL các giá trị trùng lặp. Nếu bạn sử dụng DISTINCT mệnh đề với một cột có NULL giá trị, SQLite sẽ giữ một hàng của NULL giá trị.

Theo lý thuyết cơ sở dữ liệu, nếu một cột chứa NULL giá trị, điều đó có nghĩa là chúng tôi không có thông tin về cột bản ghi cụ thể đó hoặc thông tin không áp dụng được.

Ví dụ:nếu khách hàng có số điện thoại với NULL giá trị, điều đó có nghĩa là chúng tôi không có thông tin về số điện thoại của khách hàng tại thời điểm ghi lại thông tin khách hàng hoặc khách hàng có thể hoàn toàn không có số điện thoại.

SQLite SELECT DISTINCT ví dụ

Chúng tôi sẽ sử dụng customers trong cơ sở dữ liệu mẫu để trình diễn.

Giả sử bạn muốn biết các thành phố nơi khách hàng định vị, bạn có thể sử dụng SELECT câu lệnh để lấy dữ liệu từ city cột của customers bảng như sau:

SELECT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Nó trả về 59 hàng. Có một số hàng trùng lặp như Berlin LondonMountain View Để xóa các hàng trùng lặp này, bạn sử dụng DISTINCT mệnh đề như sau:

SELECT DISTINCT city
FROM customers
ORDER BY city;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Nó trả về 53 hàng vì DISTINCT mệnh đề đã loại bỏ 6 hàng trùng lặp.

SQLite SELECT DISTINCT trên nhiều cột

Câu lệnh sau đây tìm các thành phố và quốc gia của tất cả khách hàng.

SELECT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Tập hợp kết quả chứa thành phố và quốc gia trùng lặp, ví dụ:Sao Paulo ở Brazil như được hiển thị trong ảnh chụp màn hình ở trên.

Để xóa thành phố và quốc gia trùng lặp, bạn áp dụng DISTINCT cho cả cột thành phố và quốc gia như được hiển thị trong truy vấn sau:

SELECT  DISTINCT
	city,
	country
FROM
	customers
ORDER BY
	country;Code language: SQL (Structured Query Language) (sql)

Đây là kết quả một phần:

Như đã đề cập trước đó, SQLite sử dụng kết hợp thành phố và quốc gia để đánh giá bản sao.

SQLite SELECT DISTINCT với NULL ví dụ

Câu lệnh này trả về tên của các công ty của khách hàng từ customers bảng.

SELECT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Nó trả về 59 hàng với nhiều NULL giá trị.

Bây giờ, nếu bạn áp dụng DISTINCT mệnh đề cho câu lệnh, nó sẽ chỉ giữ một hàng có NULL giá trị.

Xem tuyên bố sau:

SELECT DISTINCT company
FROM customers;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Câu lệnh trả về 11 hàng với một NULL giá trị.

Lưu ý rằng nếu bạn chọn một danh sách các cột từ một bảng và muốn nhận được sự kết hợp duy nhất của một số cột, bạn có thể sử dụng GROUP BY mệnh đề.

Trong hướng dẫn này, bạn đã học cách xóa các hàng trùng lặp khỏi tập kết quả bằng cách sử dụng SQLite SELECT DISTINCT mệnh đề.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo câu lệnh INSERT từ kết quả truy vấn SQLite

  2. Làm cách nào để chia một SQLiteOpenHelper dài, đơn lẻ thành nhiều lớp, mỗi lớp một cho mỗi bảng

  3. Android:NullPointerException Không thể tải cơ sở dữ liệu vào listview trong một phân đoạn

  4. SQLite giới thiệu hàm UNIXEPOCH ()

  5. Cách cập nhật bảng với activeandroid sau khi thêm cột mới