ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Bạn cũng có thể ĐẶT HÀNG THEO hai hoặc nhiều cột để tạo ra một sắp xếp lồng nhau. Giá trị mặc định vẫn tăng dần và cột được liệt kê đầu tiên trong mệnh đề ORDER BY sẽ được ưu tiên

Truy vấn sau đây và kết quả truy vấn tương ứng hiển thị các loại lồng nhau. Để sửa đổi thứ tự hiển thị dữ liệu đã chọn, hãy thay đổi thứ tự của hai cột được đặt tên trong mệnh đề ORDER BY

Hình 1. Truy vấn

SELECT stock_num, manu_code, description, unit_price
   FROM stock 
   ORDER BY manu_code, unit_price;

Trong kết quả truy vấn, dữ liệu cột mã_manu xuất hiện theo thứ tự bảng chữ cái và trong mỗi tập hợp hàng có cùng mã_manu (ví dụ: ANZ, HRO), đơn_giá được liệt kê theo thứ tự tăng dần

Hình 2. Kết quả truy vấn ____1_______

Truy vấn sau hiển thị thứ tự đảo ngược của các cột trong mệnh đề ORDER BY

Hình 3. Truy vấn ______2_______

Trong kết quả truy vấn, dữ liệu xuất hiện theo thứ tự tăng dần của unit_price và, trong đó hai hoặc nhiều hàng có cùng unit_price (ví dụ: $20. 00, $48. 00, $312. 00), manu_code theo thứ tự bảng chữ cái

Hình 4. Kết quả truy vấn ______3_______

Thứ tự của các cột trong mệnh đề ORDER BY rất quan trọng và vị trí của từ khóa DESC cũng vậy. Mặc dù các câu lệnh trong truy vấn sau chứa các thành phần giống nhau trong mệnh đề ORDER BY, mỗi câu lệnh tạo ra một kết quả khác (không hiển thị)

Hình 5. Truy vấn ______4_______

Thứ tự SQL theo trường hợp có thể được sử dụng khi chúng ta phải sắp xếp dữ liệu trên cơ sở có điều kiện và xác định tiêu chí mà việc sắp xếp sẽ được thực hiện dựa trên một điều kiện nhất định. Mệnh đề order by có thể hữu ích cho việc sắp xếp dữ liệu theo cách tăng dần hoặc giảm dần bằng cách chỉ định cột mà việc sắp xếp sẽ được thực hiện hoặc nhiều cột nếu việc sắp xếp được thực hiện khi xem xét từng cột một. Nhưng trong trường hợp nếu tiêu chí sắp xếp là cột mà việc sắp xếp được thực hiện cần được chỉ định một cách động và cột được xem xét để sắp xếp sẽ được quyết định trong quá trình thực hiện câu lệnh truy vấn. Đối với điều này, câu lệnh tình huống có thể được sử dụng bên trong mệnh đề theo thứ tự

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều
ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Giá bán
Xem các khóa học

Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (85,871 xếp hạng)

Trong bài viết này, chúng ta sẽ nghiên cứu cú pháp xác định mệnh đề order by một cách linh hoạt bằng cách sử dụng câu lệnh case, nghiên cứu cách hoạt động của nó và triển khai một số ví dụ về order by with case

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

cú pháp

SELECT
column1, column2,..., columnm
FROM
target_table
WHERE
conditions_or_constraints
ORDER BY CASE WHEN condition1 THEN columni ELSE [CASE WHEN condition2 THEN columni ELSE...] END;

Cú pháp của mệnh đề ORDER BY cùng với câu lệnh tình huống như hình trên. Đây là mệnh đề tùy chọn được sử dụng trong mệnh đề select bất cứ khi nào chúng ta cần truy xuất tập kết quả chứa nhiều giá trị cột. Nó phải luôn được đặt sau mệnh đề FROM và WHERE trong mệnh đề SELECT. Một số thuật ngữ được sử dụng trong cú pháp trên được giải thích bên dưới –

  • cột1, cột2,…, cộtm – Đây là tên của các cột của bảng target_table cần truy xuất và tìm nạp trong tập kết quả
  • target_table – Tên của bảng nơi kết quả sẽ được tìm nạp
  • điều kiện_hoặc_ràng buộc – Nếu bạn muốn áp dụng một số điều kiện nhất định trên một số cột nhất định, chúng có thể được đề cập trong mệnh đề WHERE tùy chọn
  • CASE WHEN condition1 THEN columni ELSE [CASE WHEN condition2 THEN columni ELSE…] – câu lệnh case có thể được sử dụng theo thứ tự từng mệnh đề trên cơ sở tùy chọn để cung cấp cơ sở để sắp xếp thứ tự trên cột một cách linh hoạt. Nhiều báo cáo trường hợp lồng nhau cũng có thể được sử dụng. Trong đó, nếu điều kiện đánh giá là đúng thì tên cột được chỉ định sau then được lấy làm tiêu chí sắp xếp khác nếu điều kiện đánh giá là sai thì tên cột hoặc câu lệnh case được đề cập sau other được coi là tiêu chí tính toán để lấy cột

Ví dụ về ĐẶT HÀNG SQL THEO TRƯỜNG HỢP

Chúng ta hãy xem xét một bảng tên nhà phát triển và kiểm tra nội dung của nó bằng truy vấn sau. Sau khi truy xuất các bản ghi của bảng nhà phát triển bằng truy vấn CHỌN bên dưới –

SELECT * FROM developers;

đưa ra đầu ra sau -

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Bây giờ, giả sử rằng trong các nội dung trên của bảng nhà phát triển, chúng tôi muốn lấy tập kết quả chứa tất cả các cột của bảng nhà phát triển và được sắp xếp theo tên của nhà phát triển. Ngoài ra, chúng tôi phải đảm bảo rằng tên của quản trị viên sẽ được truy xuất trước và sau đó tất cả mệnh đề sắp xếp theo tên sẽ có hiệu lực

Đối với điều này, chúng ta có thể sử dụng câu lệnh tình huống bên trong đơn đặt hàng bằng một mệnh đề xác định rằng nếu vị trí của nhà phát triển là Quản trị viên thì hãy giữ vị trí đó với thứ tự 0 bởi đó là giá trị nhỏ nhất khiến nó đến trong bản ghi đầu tiên khác

Hơn nữa, khi điều này được thực hiện, bản ghi của quản trị viên sẽ được truy xuất trước và sau đó là các bản ghi còn lại. Bây giờ, tiêu chí thứ hai trong cùng thứ tự theo mệnh đề sẽ là cột tên vì chúng ta phải truy xuất tất cả các bản ghi được sắp xếp theo thứ tự bảng chữ cái tên của chúng. Do đó, câu lệnh truy vấn của chúng ta sẽ như hình bên dưới với câu lệnh trường hợp được chỉ định theo thứ tự và sau khi đặt hàng của quản trị viên và các nhà phát triển khác, các nhà phát triển còn lại sẽ được sắp xếp theo tên của họ

SELECT
*
FROM
`developers`
ORDER BY CASE WHEN POSITION="Administrator" THEN 0
ELSE 1 END, NAME;

Đầu ra của việc thực hiện câu lệnh truy vấn trên sẽ như sau bao gồm bản ghi của quản trị viên ở vị trí đầu tiên và sau đó các nhà phát triển còn lại được sắp xếp theo tên của họ –

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Chúng ta có thể sử dụng câu lệnh CASE theo thứ tự theo mệnh đề thường khi chúng ta phải tách biệt các bản ghi nhất định và xác định thứ tự của chúng trước hoặc sau khi sắp xếp thông thường trên cột. Hầu hết các trường hợp này phát sinh trong trường hợp xử lý giá trị NULL, giá trị trống và hiển thị các bản ghi đó ở cuối bản ghi không null hoặc không trống

Bây giờ, chúng ta sẽ xem xét bảng có tên educba_writers có nội dung và cấu trúc như được hiển thị bằng cách sử dụng đầu ra câu lệnh truy vấn chọn bên dưới –

________số 8_______

Đầu ra của việc thực hiện câu lệnh truy vấn trên sẽ như sau –

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Bây giờ, chúng ta phải sắp xếp tập kết quả trên cơ sở nội dung của cột nối ngày và giờ. Nếu chúng ta làm điều đó bằng cách sử dụng mệnh đề order by đơn giản như được đề cập trong truy vấn bên dưới, tập kết quả sẽ như sau –

SELECT
*
FROM
`educba_writers`
ORDER BY `joining_date_time` ;

Đầu ra của việc thực hiện câu lệnh truy vấn trên sẽ như sau –

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Tuy nhiên, nếu chúng ta phải sắp xếp tập kết quả sao cho tất cả các giá trị null sẽ ở cuối và các giá trị ngày và giờ tham gia được sắp xếp ở đầu thì chúng ta có thể sử dụng câu lệnh case trong truy vấn select như bên dưới –

SELECT
*
FROM
`educba_writers`
ORDER BY
CASE
WHEN `joining_date_time` IS NULL
THEN 1
ELSE 0
END,
joining_date_time ;

Đầu ra của việc thực hiện câu lệnh truy vấn trên sẽ như sau –

ĐẶT HÀNG MySQL THEO TRƯỜNG HỢP KHI nhiều

Phần kết luận

Chúng ta có thể sử dụng câu lệnh CASE bên trong câu lệnh ORDER BY để xác định thứ tự của các cột nhất định theo cách dự kiến ​​nhất định theo yêu cầu và sau đó sắp xếp thứ tự các bản ghi còn lại như bình thường trên một số tham số khác hoặc giữ nguyên như vậy. Hành vi động xác định thứ tự của các bản ghi nhất định thỏa mãn các điều kiện nhất định chỉ có thể được thực hiện bằng cách sử dụng câu lệnh tình huống bên trong mệnh đề order by của câu lệnh truy vấn chọn và đề cập đến các điều kiện trong câu lệnh tình huống tương ứng

Bài viết được đề xuất

Đây là hướng dẫn về ĐẶT HÀNG SQL THEO TRƯỜNG HỢP. Ở đây chúng tôi thảo luận về Giới thiệu, cú pháp và ví dụ với việc triển khai mã tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Chúng ta có thể sử dụng trường hợp trong mệnh đề ORDER BY trong mysql không?

Mặc dù nó được sử dụng phổ biến nhất ở đó, CASE không giới hạn ở các câu lệnh SELECT. Ví dụ: bạn có thể sử dụng nó trong các mệnh đề như IN , WHERE , HAVING và ORDER BY . Sử dụng câu lệnh CASE trong truy vấn một lần không có nghĩa là bạn đã đạt đến hạn ngạch sử dụng nó. Bạn có thể sử dụng nó nhiều lần trong một truy vấn.

Chúng ta có thể có 2 ĐẶT HÀNG BỞI trong mysql không?

Sử dụng với nhiều cột . Bạn cũng có thể chỉ định thứ tự sắp xếp của mình ASC hoặc DESC. Trong truy vấn trên, tôi sắp xếp bảng emp_salary theo độ tuổi theo thứ tự Tăng dần và lương theo thứ tự giảm dần. Define your multiple column names in ORDER BY clause separated by a comma (,). You can also specify your sorting order ASC or DESC . In the above query, I am ordering the emp_salary table by age in Ascending order and salary by descending order.

Làm cách nào để sử dụng ORDER BY với điều kiện trong SQL?

CHỌN danh sách cột TỪ tên_bảng [điều kiện WHERE] [ĐẶT HÀNG THEO cột1, cột2,. cộtN] [ASC. DESC]; Bạn có thể sử dụng nhiều cột trong mệnh đề ORDER BY. Đảm bảo rằng bất kỳ cột nào bạn đang sử dụng để sắp xếp cột đó phải nằm trong danh sách cột.

Làm cách nào để sắp xếp dữ liệu mà không sử dụng mệnh đề ORDER BY trong SQL Server?

4 câu trả lời .
Use XML output and apply server-side XSLT transformation (through CLR for instance) with ..
Sử dụng thủ tục được lưu trữ để tạo danh sách được sắp xếp trong một giá trị trả về văn bản
Viết ứng dụng khách proxy SQL riêng thay thế -- TIN NHẮN ẨN bằng ĐẶT HÀNG BỞI