อิมพาลา - เรียงลำดับตามข้อ

อิมพาลา ORDER BYอนุประโยคใช้เพื่อจัดเรียงข้อมูลตามลำดับจากน้อยไปมากหรือมากไปหาน้อยโดยยึดตามคอลัมน์อย่างน้อยหนึ่งคอลัมน์ ฐานข้อมูลบางส่วนเรียงลำดับผลลัพธ์ของคิวรีจากน้อยไปหามากตามค่าเริ่มต้น

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของคำสั่ง ORDER BY

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

คุณสามารถจัดเรียงข้อมูลในตารางจากน้อยไปหามากหรือจากมากไปหาน้อยโดยใช้คำสำคัญ ASC หรือ DESC ตามลำดับ

ในทำนองเดียวกันถ้าเราใช้ NULLS FIRST ค่า null ทั้งหมดในตารางจะถูกจัดเรียงไว้ในแถวบนสุด และถ้าเราใช้ NULLS LAST แถวที่มีค่า null จะถูกจัดเรียงเป็นอันดับสุดท้าย

ตัวอย่าง

สมมติว่าเรามีตารางชื่อ customers ในฐานข้อมูล my_db และเนื้อหามีดังนี้ -

[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

ต่อไปนี้เป็นตัวอย่างของการจัดเรียงข้อมูลในไฟล์ customers ตารางเรียงลำดับจากน้อยไปหามาก id’s ใช้ order by อนุประโยค

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

ในการดำเนินการแบบสอบถามด้านบนจะสร้างผลลัพธ์ต่อไปนี้

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

ในทำนองเดียวกันคุณสามารถจัดเรียงข้อมูลของไฟล์ customers ตารางเรียงลำดับจากมากไปหาน้อยโดยใช้ order by ประโยคดังที่แสดงด้านล่าง

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

ในการดำเนินการแบบสอบถามด้านบนจะสร้างผลลัพธ์ต่อไปนี้

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