อิมพาลา - เรียงลำดับตามข้อ
อิมพาลา 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