MỞ ĐẦU
ORACLE TABLE
ORACLE QUERY
ORACLE CONDITION
ORACLE CLAUSES
ORACLE OPERATORS
ORACLE JOINS
ORACLE REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Loại bỏ dữ liệu trùng lặp với lệnh DISTINCT trong Oracle

Trường hợp dữ liệu trả về bị trùng lặp thì bạn có thể sử dụng lệnh DISTINCT để loại bỏ dữ dữ liệu bị trùng, chỉ để lại một record duy nhất. Ví dụ bạn lấy danh sách sinh viên đã từng đăng ký tham dự cuộc thi viết phần mềm, nếu sinh viên A đã tham gia nhiều lần thì kế quả trả về sẽ bị trùng, mà ta chỉ cần một record là đủ nên sẽ dùng lệnh DISTINCT trong Oracle để loại bỏ.

1. Cú pháp lệnh DISTINCT trong Oracle

Lệnh này sẽ được đặt trước lệnh SELECT.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

SELECT DISTINCT expressions  
FROM tables  
WHERE conditions; 

Trong đó:

  • expressions là danh sách các column bạn sẽ chọn
  • tables là danh sách table cần truy vấn
  • conditions là danh sách các điều kiện lọc dữ liệu

Đây là một ví dụ đơn giản:

SELECT DISTINCT id, name
FROM students
WHERE counter > 0;

2. Ví dụ khác về DISTINCT

Sau đây là một ví dụ khác sử dụng lệnh distinct trong Oracle.

Giả sử ta có một bảng như sau:

CREATE TABLE  "CUSTOMERS"   
   (    "NAME" VARCHAR2(4000),   
    "AGE" NUMBER,   
    "SALARY" NUMBER,   
    "STATE" VARCHAR2(4000)  
   )  

Và đây là danh sách dữ liệu.

customer table png

Bây giờ muốn muốn lấy danh sách state có trong bảng này và không được trùng thì sẽ dùng lệnh sau:

SELECT DISTINCT state  
FROM customers

Nếu không dùng DISTINCT thì sẽ trả về 10 records, nhưng nếu dùng DISTINCT thì chỉ tra về 4 records.

Lời kết

Như vậy là mình đã giới thiệu xong cách sử dụng của lệnh distinct trong Oracle, lệnh này rất hữu ích trong trường hợp muốn loại bỏ dữ liệu bị trùng lặp.

Có một lưu ý là nó chỉ loại bỏ dữ liệu khi tất cả các column trùng nhé, chỉ cần có một column khác thôi thì cũng không được xem là dữ liệu trung lặp.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top