SERIES ▶ Làm quen với ngôn ngữ SQL và áp dụng trong Excel – phần 4 – Sử dụng Order By

Nội dung chính


Trong các bài viết trước, chúng ta đã biết cách sử dụng SELECT để truy vấn dữ liệu, sử dụng từ khoá WHERE để đưa ra điều kiện lọc dữ liệu và sử dụng từ khoá LIKE để mở rộng khả năng lọc dữ liệu khi kết hợp với WHERE. Có thể thấy rằng, dữ liệu được trả về không được sắp xếp theo một trình tự nào cả, trong bay này, chúng ta sẽ đi sắp xếp dữ liệu bằng cách sử dụng từ khoá Order By.

Download excel file kèm theo video

Những ví dụ về sắp xếp dữ liệu theo nhiều cột với Order By trong SQL

Đầu tiên đây là bảng dữ liệu của chúng ta:

Đây là bảng dữ liệu được kết nối trực tiếp từ Excel Online, bạn cần sử dụng một trình duyệt Web hiện đại (Google Chrome, Firefox, Safari) để có thể xem được bảng Excel này trực tiếp. Tài liệu Excel này có thể được download tại đây

1. Thế nào là sắp xếp

Trước khi đi vào các ví dụ, nói đến sắp xếp, người ta hiểu gồm có 2 cách sắp xếp cơ bản đó là sắp xếp theo thứ tự tăng dần và sắp xếp theo thứ tự giảm dần. Với mỗi loại dữ liệu thì việc sắp xếp này có ý nghĩa khác nhau. Chúng ta thường gặp 2 kiểu dữ liệu chính là kiểu dữ liệu chuỗi (chữ cái, tên địa danh, tên người, tên mặt hàng, …) và dữ liệu có dạng số (ngày tháng, số tiền, số lượng, …)

  • Dữ liệu dạng số : đối với kiểu dữ liệu này, sắp xếp tăng dần nghĩa là sắp xếp giá trị của dữ liệu tăng dần, từ số có giá trị nhỏ nhất đến số có giá trị lớn nhất. Sắp xếp giảm dần nghĩa là sắp xếp từ số có giá trị lớn nhất cho đến số có giá trị nhỏ nhất.
  • Dữ liệu dạng chuỗi kí tự: đối với kiểu dữ liệu này, sắp xếp tăng dần nghĩa là sắp xếp các từ theo thứ tự từ A đến Z, hay nói cách khác là sắp xếp các từ theo thứ tự sắp xếp trong từ điển. Sắp xếp giảm dần đối với dữ liệu dạng chuỗi kí tự nghĩa là sắp xếp từ Z tới A.

http://www.hocexcel.online/vba101-landing.html

2. Cú pháp của câu SQL với Order By

Cú pháp của Order By khi sử dụng chung với SELECTWHERE như sau (Không nhất thiết phải sử dụng WHERE, nhưng ở đây để minh hoạ thứ tự của các từ khoá, nên WHERE được cho vào)

	SELECT ct_1, ct_2, ...,ct_N
	FROM tên_vùng_d_liu
	[WHERE điu_kin]
	[ORDER BY ct_1, ct2, ..., ct_N] [ASC | DESC];

Giải thích:

  • Phần câu lệnh được viết trong dấu ngoặc vuông [] là không bắt buộc, có thể có hoặc không có.
  • Ở trong [ORDER BY cột_1, cột2, ..., cột_N], việc sắp xếp có thể được thực hiện theo 1 cột, 2 cột, hoặc nhiều cột tuỳ thuộc vào nhu cầu
  • Phần [ASC | DESC] nghĩa là chúng ta có thể viết 1 trong 2 giá trị ASC nghĩa là sắp xếp theo chiều thuận, từ nhỏ đến lớn, từ A tới Z; ngược lại đối với DESC. Mặc định, nếu không có 2 từ này, thì việc sắp xếp được thực hiện theo chiều thuận.

3. Một số ví dụ

Các ví dụ sau đây được thực hiện trong file excel này (Hướng dẫn sử dụng file excel ở video phía trên)

Tìm các mặt hàng bán ở Hanoi theo doanh số giảm dần
	SELECT *
	FROM [A1:G20000]
	WHERE Region = 'Hanoi'
	Order By Total DESC

Nếu sếp bạn cần một báo cáo doanh số các mặt hàng bán ở Hanoi thì đây chính là câu lệnh sẽ tạo ra báo cáo đó cho bạn.

Tìm các mặt hàng bán ở Hanoi sắp xếp tên nhân viên bán hàng từ A tới Z
	SELECT *
	FROM [A1:G20000]
	WHERE Region = 'Hanoi'
	Order By Rep

Theo mặc định, khi chúng ta không viết chiều sắp xếp vào câu lệnh thì SQL, dữ liệu trả về sẽ được sắp xếp theo chiều thuận (giá trị tăng dần với số, từ A đến Z với chữ).

Tìm các mặt hàng bán ở Hanoi sắp xếp tên mặt hàng từ Z đến A, sắp xếp tên nhân viên theo thứ tự A đến Z
	SELECT *
	FROM [A1:G20000]
	WHERE Region = 'Hanoi'
	Order By Item DESC, Rep

Câu SQL trên sẽ sắp xếp mọi kết quả theo tên mặt hàng Item từ Z đến A; nếu có 1 hay nhiều mặt hàng có tên giống nhau, cột tên nhân viên sẽ được sắp xếp theo thứ tự từ A đến Z.

Tham khảo thêm Stackoverflow – sql multiple column ordering

Chúng ta đã làm gì trong bài viết này?

Qua bài này, chúng ta lại một bước nữa tiến gần hơn đến việc làm chủ một công cụ mới – SQL để có thể sử dụng trong công việc của chúng ta. Cảm ơn các bạn đã đọc đến đây & hẹn gặp lại lần sau.

Download tài liệu kèm theo video

Download excel file

http://www.hocexcel.online/vba101-landing.html


Tác giả: dtnguyen (Nguyễn Đức Thanh)

@ Học Excel Online | DTNguyen.business
· · ·

Khóa học mới xuất bản