Rate this post

Bất cứ khi nào chúng ta muốn sắp xếp các bản ghi dựa trên các cột được lưu trữ trong các bảng của cơ sở dữ liệu SQL, thì chúng ta sẽ cân nhắc sử dụng mệnh đề ORDER BY trong SQL.

Mệnh đề ORDER BY trong SQL sẽ giúp chúng ta sắp xếp các record dựa trên cột cụ thể của bảng. Điều này có nghĩa là tất cả các giá trị được lưu trữ trong cột mà chúng ta đang áp dụng mệnh đề ORDER BY sẽ được sắp xếp và các giá trị cột tương ứng sẽ được hiển thị theo trình tự mà chúng ta đã lấy được các giá trị trong bước trước đó.

Sử dụng mệnh đề ORDER BY, chúng tôi có thể sắp xếp các bản ghi theo thứ tự tăng dần hoặc giảm dần tùy theo yêu cầu của chúng tôi. Các bản ghi sẽ được sắp xếp theo thứ tự tăng dần bất cứ khi nào từ khóa ASC được sử dụng với mệnh đề ORDER by. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.

Nếu không có từ khóa nào được chỉ định sau cột mà chúng ta phải sắp xếp các bản ghi, trong trường hợp đó, việc sắp xếp sẽ được thực hiện theo mặc định theo thứ tự tăng dần.

Các bài viết liên quan:

Trước khi viết các truy vấn để sắp xếp các bản ghi, chúng ta hãy hiểu cú pháp.

Cú pháp để sắp xếp các bản ghi theo thứ tự tăng dần:

Cú pháp sắp xếp các bản ghi theo thứ tự giảm dần:

Cú pháp sắp xếp các bản ghi theo thứ tự tăng dần mà không sử dụng từ khóa ASC:

Hãy để chúng tôi khám phá thêm về chủ đề này với sự trợ giúp của các ví dụ. Chúng tôi sẽ sử dụng cơ sở dữ liệu MySQL để viết các truy vấn trong các ví dụ.

Hãy xem xét chúng tôi có bảng khách hàng với các bản ghi sau:

IDNAMEAGEADDRESSSALARY
2Shiva Tiwari22Bhopal21000
3Ajeet Bhargav45Meerut65000
4Ritesh Yadav36Azamgarh26000
5Balwant Singh45Varanasi36000
6Mahesh Sharma26Mathura22000
7Rohit Shrivastav19Ahemdabad38000
8Neeru Sharma29Pune40000
9Aakash Yadav32Mumbai43500
10Sahil Sheikh35Aurangabad68800

Ví dụ 1:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự tăng dần của tên khách hàng được lưu trong bảng khách hàng.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng trên cột ‘Tên’ để sắp xếp các bản ghi. Từ khóa ASC sẽ sắp xếp các bản ghi theo thứ tự tăng dần.

Bạn sẽ nhận được kết quả sau:

IDNAMEAGEADDRESSSALARY
9Aakash Yadav32Mumbai43500
3Ajeet Bhargav45Meerut65000
5Balwant Singh45Varanasi36000
1Himani Gupta21Modinagar22000
6Mahesh Sharma26Mathura22000
8Neeru Sharma29Pune40000
4Ritesh Yadav36Azamgarh26000
7Rohit Shrivastav19Ahemdabad38000
10Sahil Sheikh35Aurangabad68800
2Shiva Tiwari22Bhopal21000

Tất cả các bản ghi có trong bảng khách hàng được hiển thị theo thứ tự tăng dần của tên khách hàng.

Xem thêm GROUP BY so với ORDER BY

Ví dụ 2:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự tăng dần của các địa chỉ được lưu trữ trong bảng khách hàng.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng cho cột ‘Địa chỉ’ để sắp xếp các bản ghi. Không có từ khóa nào được sử dụng sau mệnh đề ORDER BY. Do đó, các bản ghi, theo mặc định, sẽ được sắp xếp theo thứ tự tăng dần.

Bạn sẽ nhận được kết quả sau:

IDNAMEAGEADDRESSSALARY
7Rohit Shrivastav19Ahemdabad38000
10Sahil Sheikh35Aurangabad68800
4Ritesh Yadav36Azamgarh26000
2Shiva Tiwari22Bhopal21000
6Mahesh Sharma26Mathura22000
3Ajeet Bhargav45Meerut65000
1Himani Gupta21Modinagar22000
9Aakash Yadav32Mumbai43500
8Neeru Sharma29Pune40000
5Balwant Singh45Varanasi36000

Tất cả các bản ghi có trong bảng khách hàng được hiển thị theo thứ tự tăng dần của địa chỉ của khách hàng.

Ví dụ 3:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự giảm dần của lương khách hàng được lưu trong bảng khách hàng.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng trên cột? Lương? để sắp xếp các bản ghi. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.

Bạn sẽ nhận được kết quả sau:

IDNAMEAGEADDRESSSALARY
10Sahil Sheikh35Aurangabad68800
3Ajeet Bhargav45Meerut65000
9Aakash Yadav32Mumbai43500
8Neeru Sharma29Pune40000
7Rohit Shrivastav19Ahemdabad38000
5Balwant Singh45Varanasi36000
4Ritesh Yadav36Azamgarh26000
6Mahesh Sharma26Mathura22000
1Himani Gupta21Modinagar22000
2Shiva Tiwari22Bhopal21000

Tất cả các bản ghi có trong bảng khách hàng được hiển thị theo thứ tự giảm dần mức lương của khách hàng.

Ví dụ 4:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự giảm dần của độ tuổi khách hàng được lưu trữ trong bảng khách hàng.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng trên cột ‘Tuổi’ để sắp xếp các bản ghi. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.

Bạn sẽ nhận được kết quả sau:

IDNAMEAGEADDRESSSALARY
3Ajeet Bhargav45Meerut65000
5Balwant Singh45Varanasi36000
4Ritesh Yadav36Azamgarh26000
10Sahil Sheikh35Aurangabad68800
9Aakash Yadav32Mumbai43500
8Neeru Sharma29Pune40000
6Mahesh Sharma26Mathura22000
2Shiva Tiwari22Bhopal21000
1Himani Gupta21Modinagar22000
7Rohit Shrivastav19Ahemdabad38000

Tất cả các bản ghi có trong bảng khách hàng được hiển thị theo thứ tự giảm dần độ tuổi của khách hàng.

Xem thêm Chuyển đổi chuỗi thành Int Swift

Hãy xem xét chúng ta có một bảng khác có tên là các tác nhân với các bản ghi sau:

AIDNameWorkAreaProfit_PercentContactNumberSalary
1Gurpreet SinghBangalore1998967543243000
2Sakshi KumariChennai5819056734225000
3Prachi DesaiMumbai2905612343260000
4Shivani MorePune3889423678935500
5Pallavi SinghDelhi4779809234138700
6Rohini KulkarniAmbala8789094561225670
7Shweta DixitChandigarh6889878645331670
8Sonakshi TiwariUdaipur2980945342125050
9Anushka TripathiUjjain9890912432638000
10Devika SharmaGoa7786452314544050

Ví dụ 1:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự tăng dần của tên tác nhân được lưu trữ trong bảng tác nhân.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng trên cột ‘Tên’ để sắp xếp các bản ghi. Từ khóa ASC sẽ sắp xếp các bản ghi theo thứ tự tăng dần.

Bạn sẽ nhận được kết quả sau:

AIDNameWorkAreaProfit_PercentContactNumberSalary
9Anushka TripathiUjjain9890912432638000
10Devika SharmaGoa7786452314544050
1Gurpreet SinghBangalore1998967543243000
5Pallavi SinghDelhi4779809234138700
3Prachi DesaiMumbai2905612343260000
6Rohini KulkarniAmbala8789094561225670
2Sakshi KumariChennai5819056734225000
4Shivani MorePune3889423678935500
7Shweta DixitChandigarh6889878645331670
8Sonakshi TiwariUdaipur2980945342125050

Tất cả các bản ghi có trong bảng đại lý được hiển thị theo thứ tự tăng dần của tên đại lý.

Ví dụ 2:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự giảm dần của vùng làm việc được lưu trữ trong bảng tác nhân.

Truy vấn:

Ở đây trong một truy vấn CHỌN, một mệnh đề ORDER BY được áp dụng trên cột ‘WorkArea’ để sắp xếp các bản ghi. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.

Bạn sẽ nhận được kết quả sau:

AIDNameWorkAreaProfit_PercentContactNumberSalary
9Anushka TripathiUjjain9890912432638000
8Sonakshi TiwariUdaipur2980945342125050
4Shivani MorePune3889423678935500
3Prachi DesaiMumbai2905612343260000
10Devika SharmaGoa7786452314544050
5Pallavi SinghDelhi4779809234138700
2Sakshi KumariChennai5819056734225000
7Shweta DixitChandigarh6889878645331670
1Gurpreet SinghBangalore1998967543243000
6Rohini KulkarniAmbala8789094561225670

Tất cả các bản ghi có trong bảng đại lý được hiển thị theo thứ tự giảm dần của khu vực làm việc của khách hàng.

Ví dụ 3:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự tăng dần của lương đại lý được lưu trong bảng đại lý.

Truy vấn:

Ở đây trong một truy vấn CHỌN, mệnh đề ORDER BY được áp dụng trên cột ‘Lương’ để sắp xếp các bản ghi. Không có từ khóa nào được sử dụng sau mệnh đề ORDER BY. Do đó, các bản ghi, theo mặc định, sẽ được sắp xếp theo thứ tự tăng dần.

Bạn sẽ nhận được kết quả sau:

AIDNameWorkAreaProfit_PercentContactNumberSalary
2Sakshi KumariChennai5819056734225000
8Sonakshi TiwariUdaipur2980945342125050
6Rohini KulkarniAmbala8789094561225670
7Shweta DixitChandigarh6889878645331670
4Shivani MorePune3889423678935500
9Anushka TripathiUjjain9890912432638000
5Pallavi SinghDelhi4779809234138700
1Gurpreet SinghBangalore1998967543243000
10Devika SharmaGoa7786452314544050
3Prachi DesaiMumbai2905612343260000

Tất cả các bản ghi có trong bảng đại lý được hiển thị theo thứ tự tăng dần về mức lương của khách hàng.

Ví dụ 4:

Viết truy vấn để sắp xếp các bản ghi theo thứ tự giảm dần của lương đại lý được lưu trong bảng đại lý.

Truy vấn:

Ở đây trong một truy vấn CHỌN, mệnh đề ORDER BY được áp dụng trên cột ‘Lương’ để sắp xếp các bản ghi. Từ khóa DESC sẽ sắp xếp các bản ghi theo thứ tự giảm dần.

Bạn sẽ nhận được kết quả sau:

AIDNameWorkAreaProfit_PercentContactNumberSalary
3Prachi DesaiMumbai2905612343260000
10Devika SharmaGoa7786452314544050
1Gurpreet SinghBangalore1998967543243000
5Pallavi SinghDelhi4779809234138700
9Anushka TripathiUjjain9890912432638000
4Shivani MorePune3889423678935500
7Shweta DixitChandigarh6889878645331670
6Rohini KulkarniAmbala8789094561225670
8Sonakshi TiwariUdaipur2980945342125050
2Sakshi KumariChennai5819056734225000

Tất cả các bản ghi có trong bảng đại lý được hiển thị theo thứ tự giảm dần của địa chỉ của khách hàng.

Mệnh đề ORDER BY với điều chỉnh thứ tự

Mệnh đề ORDER BY trong SQL với thứ tự tăng dần

Câu lệnh này được sử dụng để sắp xếp dữ liệu theo thứ tự tăng dần. Nếu bạn bỏ lỡ thuộc tính ASC, truy vấn SQL ORDER BY có thứ tự tăng dần theo mặc định.

Hãy lấy một ví dụ về nhà cung cấp

Hãy để chúng tôi lấy một bảng KHÁCH HÀNG có các bản ghi sau:

IDNAMEAGEADDRESSSALARY
1Himani gupta21Modinagar22000
2Shiva tiwari22Bhopal21000
3Ajeet bhargav45Meerut65000
4Ritesh yadav36Azamgarh26000
5Balwant singh45Varanasi36000
6Mahesh sharma26Mathura22000

Đây là một ví dụ để sắp xếp kết quả theo thứ tự tăng dần theo TÊN và LƯƠNG.

Điều này sẽ tạo ra kết quả sau.

IDNAMEAGEADDRESSSALARY
3Ajeet bhargav45Meerut65000
5Balwant singh45Varanasi36000
1Himani gupta21Modinagar22000
6Mahesh sharma26Mathura22000
4Ritesh yadav36Azamgarh26000
2Shiva tiwari22Bhopal21000

Mệnh đề ORDER BY trong SQL với thứ tự giảm dần

Câu lệnh này dùng để sắp xếp dữ liệu theo thứ tự giảm dần. Bạn nên sử dụng thuộc tính DESC trong mệnh đề ORDER BY của mình như sau.

IDNAMEAGEADDRESSSALARY
1Himani gupta21Modinagar22000
2Shiva tiwari22Bhopal21000
3Ajeet bhargav45Meerut65000
4Ritesh yadav36Azamgarh26000
5Balwant singh45Varanasi36000
6Mahesh sharma26Mathura22000

Đây là một ví dụ để sắp xếp kết quả theo thứ tự giảm dần của NAME.

Điều này sẽ tạo ra kết quả sau.

IDNAMEAGEADDRESSSALARY
2Shiva tiwari22Bhopal21000
4Ritesh yadav36Azamgarh26000
6Mahesh sharma26Mathura22000
1Himani gupta21Modinagar22000
5Balwant singh45Varanasi36000
3Ajeet bhargav45Meerut65000

Mệnh đề ORDER BY với random

Nếu bạn muốn bản ghi kết quả được sắp xếp ngẫu nhiên, bạn nên sử dụng các mã sau theo một số cơ sở dữ liệu.

Đây là một câu hỏi: cần tìm nạp một bản ghi hoặc một hàng ngẫu nhiên từ cơ sở dữ liệu là gì?

Đôi khi bạn có thể muốn hiển thị thông tin ngẫu nhiên như bài báo, liên kết, trang, v.v., cho người dùng của mình.

Nếu bạn muốn tìm nạp các hàng ngẫu nhiên từ bất kỳ cơ sở dữ liệu nào, bạn phải sử dụng một số truy vấn đã thay đổi theo cơ sở dữ liệu.

Chọn một hàng ngẫu nhiên với MySQL:

Nếu bạn muốn trả về một hàng ngẫu nhiên với MY SQL, hãy sử dụng cú pháp sau:

Chọn một hàng ngẫu nhiên với Postgre SQL:

Chọn một hàng ngẫu nhiên với SQL Server:

Chọn một hàng ngẫu nhiên với oracle:

Chọn một hàng ngẫu nhiên với IBM DB2:

Để hiểu khái niệm này một cách thực tế, chúng ta hãy xem một số ví dụ sử dụng cơ sở dữ liệu MySQL. Hãy xem xét chúng ta có một mục bảng được tạo trong cơ sở dữ liệu với dữ liệu sau:

Bảng: item

IDItem_NameItem_QuantityItem_PricePurchase_Date
1Soap5200 2021-07-08
2Toothpaste2802021-07-10
3Pen10502021-07-12
4Bottle12502021-07-13
5Brush3902021-07-15

Giả sử chúng ta muốn lấy bất kỳ bản ghi ngẫu nhiên nào từ bảng các mục.

Chúng tôi sẽ viết câu truy vấn như sau:

Chúng tôi có thể nhận được các kết quả sau:

IDItem_NameItem_QuantityItem_PricePurchase_Date
3Pen10202021-07-12

Bây giờ chúng ta hãy thử thực hiện cùng một truy vấn một lần nữa.

Chúng tôi có thể nhận được các kết quả sau:

IDItem_NameItem_QuantityItem_PricePurchase_Date
5Brush3902021-07-15

Từ các kết quả trên, chúng ta có thể kết luận rằng chúng ta nhận được các bản ghi khác nhau dưới dạng đầu ra cả hai lần mặc dù chúng ta đã thực hiện cùng một truy vấn hai lần. Hàm RAND () đã chọn các bản ghi ngẫu nhiên cả hai lần cho cùng một truy vấn từ một bảng. Do đó, ngay cả khi chúng tôi thực hiện lại cùng một truy vấn, chúng tôi sẽ nhận được kết quả đầu ra khác nhau mỗi lần. Hiếm có khả năng nhận được cùng một bản ghi liên tục bằng cách sử dụng hàm RAND ().

Bây giờ, giả sử bạn muốn tất cả các bản ghi của bảng được tìm nạp một cách ngẫu nhiên.

Để làm như vậy, chúng ta cần thực hiện truy vấn sau:

Chúng tôi có thể nhận được các kết quả sau:

IDItem_NameItem_QuantityItem_PricePurchase_Date
4Bottle12502021-07-13
5Brush3902021-07-15
1Soap52002021-07-08
2Toothpaste2802021-07-10
3Pen10502021-07-12

Cũng có khả năng nhận được một số sắp xếp bản ghi khác nhau nếu chúng ta thực thi lại hàm RAND () trên bảng nhân viên.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now