Impala - Đặt hàng theo mệnh đề

Impala ORDER BYmệnh đề được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần hoặc giảm dần, dựa trên một hoặc nhiều cột. Một số cơ sở dữ liệu sắp xếp các kết quả truy vấn theo thứ tự tăng dần theo mặc định.

Cú pháp

Sau đây là cú pháp của mệnh đề ORDER BY.

select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]

Bạn có thể sắp xếp dữ liệu trong bảng theo thứ tự tăng dần hoặc giảm dần bằng cách sử dụng các từ khóa ASC hoặc là DESC tương ứng.

Theo cách tương tự, nếu chúng ta sử dụng NULLS FIRST, tất cả các giá trị null trong bảng được sắp xếp ở các hàng trên cùng; và nếu chúng ta sử dụng NULLS LAST, các hàng chứa giá trị null sẽ được sắp xếp sau cùng.

Thí dụ

Giả sử chúng ta có một bảng tên customers trong cơ sở dữ liệu my_db và nội dung của nó như sau:

[quickstart.cloudera:21000] > select * from customers;
Query: select * from customers 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 1  | Ramesh   |  32 | Ahmedabad | 20000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  | 
| 6  | Komal    | 22  | MP        | 32000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.51s

Sau đây là một ví dụ về việc sắp xếp dữ liệu trong customers bảng, theo thứ tự tăng dần của id’s sử dụng order by mệnh đề.

[quickstart.cloudera:21000] > Select * from customers ORDER BY id asc;

Khi thực thi, truy vấn trên tạo ra kết quả sau.

Query: select * from customers ORDER BY id asc 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 1  | Ramesh   | 32  | Ahmedabad | 20000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  | 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
| 6  | Komal    | 22  | MP        | 32000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.56s

Theo cách tương tự, bạn có thể sắp xếp dữ liệu của customers bảng theo thứ tự giảm dần bằng cách sử dụng order by như hình dưới đây.

[quickstart.cloudera:21000] > Select * from customers ORDER BY id desc;

Khi thực thi, truy vấn trên tạo ra kết quả sau.

Query: select * from customers ORDER BY id desc 
+----+----------+-----+-----------+--------+ 
| id | name     | age | address   | salary | 
+----+----------+-----+-----------+--------+ 
| 6  | Komal    | 22  | MP        | 32000  | 
| 5  | Hardik   | 27  | Bhopal    | 40000  | 
| 4  | Chaitali | 25  | Mumbai    | 35000  | 
| 3  | kaushik  | 23  | Kota      | 30000  | 
| 2  | Khilan   | 25  | Delhi     | 15000  |
| 1  | Ramesh   | 32  | Ahmedabad | 20000  | 
+----+----------+-----+-----------+--------+ 
Fetched 6 row(s) in 0.54s