Thứ tự mysql theo từng trường hợp khi asc desc

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 cần sắp xếp cần được chỉ định động và cột được 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]

Giá
Xem khóa học

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 [84.689 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 -

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ọ –

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 –

SELECT
*
FROM
`educba_writers`;

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

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 –

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 –

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 –

Tôi có thể sử dụng ORDER BY ASC và DESC trong cùng một truy vấn không?

Có một cách để bạn có thể sử dụng cả hai đơn đặt hàng ASC. DESC , Nếu bạn đang sử dụng để sắp xếp các bản ghi dựa trên hai cột, Đôi khi chúng tôi cần hiển thị dữ liệu theo thứ tự của cột đầu tiên và sau đó là cột thứ hai.

ORDER BY mặc định là DESC hay ASC?

Bạn có thể sử dụng từ khóa ASC và DESC để chỉ định thứ tự tăng dần [giá trị nhỏ nhất trước] hoặc giảm dần [giá trị lớn nhất trước]. Thứ tự mặc định tăng dần .

ASC có được mặc định trong ORDER BY không?

Theo mặc định, SQL Server sắp xếp kết quả bằng cách sử dụng mệnh đề ORDER BY theo thứ tự tăng dần. Việc chỉ định ASC theo thứ tự theo mệnh đề là tùy chọn .

Làm cách nào để sử dụng ASC và DESC trong SQL trong cùng một truy vấn?

Nếu bạn muốn sắp xếp một số dữ liệu theo thứ tự tăng dần và dữ liệu khác theo thứ tự giảm dần thì bạn sẽ phải sử dụng từ khóa ASC và DESC. CHỌN * TỪ bảng ORDER BY cột1 ASC, cột2 DESC; Đó là cách sử dụng mệnh đề ORDER BY trong SQL để sắp xếp dữ liệu theo thứ tự tăng dần.

Chủ Đề