Hướng dẫn when case in mysql query? - trường hợp nào trong truy vấn mysql?
Thí dụTrải qua các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng: Show
Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì "Số lượng lớn hơn 30" & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì "Số lượng là 30" & nbsp; & nbsp; & nbsp; Khác "Số lượng dưới 30" endFrom orderDetails; Hãy tự mình thử » Định nghĩa và cách sử dụngTuyên bố trường hợp trải qua các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng (như một câu lệnh if-then-else). Vì vậy, một khi một điều kiện là đúng, nó sẽ ngừng đọc và trả về kết quả. Nếu không có điều kiện nào là đúng, nó sẽ trả về giá trị trong mệnh đề khác. Nếu không có phần khác và không có điều kiện nào là đúng, nó sẽ trả lại null. Cú pháp Trường hợp & nbsp; & nbsp; & nbsp; Khi điều kiện1 thì kết quả1 & nbsp; & nbsp; & nbsp; Khi điều kiện2 thì result2 & nbsp; & nbsp; & nbsp; Khi điều kiện sau đó kết quả & nbsp; & nbsp; & nbsp; Kết quả khác; Giá trị tham số
Chi tiết kỹ thuật
Nhiều ví dụ hơnSQL sau đây sẽ đặt hàng khách hàng theo thành phố. Tuy nhiên, nếu City là NULL, thì hãy đặt hàng theo quốc gia: Thí dụ Chọn Tên tùy chỉnh, Thành phố, CountryFrom Khách hàng theo (Case & NBSP; & NBSP; & NBSP; Khi Thành phố là NULL sau đó là Quốc gia & NBSP; & NBSP; & NBSP; khác CityEnd); Hãy tự mình thử » Tuyên bố trường hợp MySQLCâu lệnh Nếu không có phần COLTAX TRƯỜNG HỢP Trường hợp & nbsp; & nbsp; & nbsp; Khi điều kiện1 thì kết quả1 & nbsp; & nbsp; & nbsp; Khi điều kiện2 thì result2 & nbsp; & nbsp; & nbsp; Khi điều kiện sau đó kết quả & nbsp; & nbsp; & nbsp; Kết quả khác; Cơ sở dữ liệu demoDưới đây là một lựa chọn từ bảng "OrderDetails" trong cơ sở dữ liệu mẫu Northwind:
Ví dụ trường hợp MySQLSQL sau đây trải qua các điều kiện và trả về giá trị khi đáp ứng điều kiện đầu tiên: Thí dụ Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì 'số lượng lớn hơn 30' & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì 'Số lượng là 30' & nbsp; & nbsp; & nbsp; Khác 'số lượng dưới 30'end dưới dạng số lượng orderdetails; Hãy tự mình thử » SQL sau đây sẽ đặt hàng khách hàng theo thành phố. Tuy nhiên, nếu City là NULL, thì hãy đặt hàng theo quốc gia: Thí dụ Chọn orderID, số lượng, trường hợp & nbsp; & nbsp; & nbsp; Khi số lượng> 30 thì 'số lượng lớn hơn 30' & nbsp; & nbsp; & nbsp; Khi số lượng = 30 thì 'Số lượng là 30' & nbsp; & nbsp; & nbsp; Khác 'số lượng dưới 30'end dưới dạng số lượng orderdetails; Hãy tự mình thử » Chúng ta có thể viết trường hợp trong điều kiện ở đâu không?: in this tutorial, you will learn how to use the MySQL Một cách khác để sử dụng câu lệnh trường hợp là trong mệnh đề WHERE. Ở đó, nó có thể được sử dụng để thay đổi dữ liệu được tìm nạp bởi một truy vấn dựa trên một điều kiện. Trong bối cảnh đó, tuyên bố trường hợp phù hợp lý tưởng với cả các truy vấn tĩnh, cũng như các truy vấn động, chẳng hạn như những câu hỏi mà bạn sẽ tìm thấy bên trong một quy trình được lưu trữ.Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng biểu thức MySQL Giới thiệu về biểu thức MySQL Biểu thức MySQL 3, 4 và 5. Biểu thức CASE có hai dạng: đơn giản CASE và tìm kiếm CASE.Lưu ý rằng MySQL có tuyên bố
Biểu thức Sau đây minh họa cú pháp của đơn giản & nbsp; Trong cú pháp này, CASE phù hợp với giá trị với SELECT customerName, COUNT(*) orderCount FROM orders INNER JOIN customers USING (customerNumber) GROUP BY customerName ORDER BY COUNT(*);Code language: SQL (Structured Query Language) (sql)4, SELECT customerName, COUNT(*) orderCount FROM orders INNER JOIN customers USING (customerNumber) GROUP BY customerName ORDER BY COUNT(*);Code language: SQL (Structured Query Language) (sql)5, v.v., cho sự bình đẳng và trả về SELECT customerName, COUNT(*) orderCount FROM orders INNER JOIN customers USING (customerNumber) GROUP BY customerName ORDER BY COUNT(*);Code language: SQL (Structured Query Language) (sql)6, ________ 27, Điều khoản ELSE được chỉ định.
8 với 6 trong các mệnh đề 7 cho sự bình đẳng, bạn không thể sử dụng nó với 8 vì 9 trả về sai.
Đã tìm kiếm biểu thức Sau đây cho thấy cú pháp của biểu thức Trong cú pháp này, CASE đánh giá các biểu thức được chỉ định trong các mệnh đề ____37. Nếu một biểu thức đánh giá là đúng. Trường hợp trả về kết quả tương ứng trong mệnh đề SELECT customerName, state, country FROM customers ORDER BY ( CASE WHEN state IS NULL THEN country ELSE state END);Code language: SQL (Structured Query Language) (sql)4. Mặt khác, nó trả về kết quả được chỉ định trong mệnh đề ELSE. Trong trường hợp mệnh đề ELSE không có sẵn, thì biểu thức CASE trả về WITH cte AS ( SELECT customerName, COUNT(*) orderCount FROM orders INNER JOIN customers USING (customerNumber) GROUP BY customerName ) SELECT customerName, orderCount, CASE orderCount WHEN 1 THEN 'One-time Customer' WHEN 2 THEN 'Repeated Customer' WHEN 3 THEN 'Frequent Customer' ELSE 'Loyal Customer' end customerType FROM cte ORDER BY customerName;Code language: SQL (Structured Query Language) (sql)8.Biểu thức CASE trả về một kết quả mà loại dữ liệu phụ thuộc vào ngữ cảnh nơi nó được sử dụng. Ví dụ: nếu biểu thức CASE được sử dụng trong bối cảnh chuỗi ký tự, nó sẽ trả về kết quả dưới dạng chuỗi ký tự. Nếu biểu thức CASE được sử dụng trong bối cảnh số, nó sẽ trả về kết quả dưới dạng số nguyên, thập phân hoặc giá trị thực.Xem bảng 5 và 6 sau: Tuyên bố sau đây trả về khách hàng và đơn đặt hàng của họ: Ví dụ này sử dụng biểu thức CASE trong Điều khoản 3 để trả về loại khách hàng dựa trên số lượng đơn đặt hàng mà khách hàng đã đặt hàng: This example uses
the 3 clause to return the type of customers based on the number of orders that customers ordered: B) Sử dụng biểu thức CASE trong ví dụ mệnh đề 5 B) Using CASE expression in the CASE WHEN expression1 THEN result1 WHEN expression2 THEN result2 … [ELSE else_result] ENDCode language: SQL (Structured Query Language) (sql)5 clause exampleVí dụ sau đây sử dụng biểu thức 8:
Thử nó ra C) Sử dụng biểu thức CASE với ví dụ chức năng tổng hợpVí dụ sau sử dụng biểu thức
Thử nó ra C) Sử dụng biểu thức Ví dụ sau sử dụng biểu thức
Đầu tiên, câu lệnh
Thứ hai, hàm Bạn có thể sử dụng trường hợp khi ở MySQL không?Trường hợp MySQL thường được sử dụng khi mong muốn đánh giá các giá trị cột đã cho so với các điều kiện đã cho hoặc trả về giá trị tùy chỉnh tùy thuộc vào cột hiện tại có giá trị được đánh giá theo một điều kiện nhất định.when it is desired to evaluate the given column values against given conditions or return a custom value depending on the current column whose values are evaluated against a given condition.
Chúng ta có thể sử dụng trường hợp khi nào hoặc trong SQL không?Trong SQL, tuyên bố trường hợp trả về kết quả dựa trên đánh giá các điều kiện nhất định. Nó khá linh hoạt và có thể được sử dụng trong các cấu trúc khác nhau. Chẳng hạn, bạn có thể sử dụng nó để hiển thị các giá trị, đặt hàng sắp xếp kết quả hoặc bản ghi lọc.to display values, order sort results, or filter records.
Chúng ta có thể sử dụng câu lệnh CASE trong Truy vấn chọn không?Tuyên bố trường hợp luôn đi trong mệnh đề chọn.Trường hợp phải bao gồm các thành phần sau: Khi nào, sau đó và kết thúc.Khác là một thành phần tùy chọn.Bạn có thể thực hiện bất kỳ câu lệnh có điều kiện nào bằng cách sử dụng bất kỳ toán tử có điều kiện nào (như ở đâu) giữa khi nào và sau đó.. CASE must include the following components: WHEN , THEN , and END . ELSE is an optional component. You can make any conditional statement using any conditional operator (like WHERE ) between WHEN and THEN .
Chúng ta có thể viết trường hợp trong điều kiện ở đâu không?Một cách khác để sử dụng câu lệnh trường hợp là trong mệnh đề WHERE.Ở đó, nó có thể được sử dụng để thay đổi dữ liệu được tìm nạp bởi một truy vấn dựa trên một điều kiện.Trong bối cảnh đó, tuyên bố trường hợp phù hợp lý tưởng với cả các truy vấn tĩnh, cũng như các truy vấn động, chẳng hạn như những câu hỏi mà bạn sẽ tìm thấy bên trong một quy trình được lưu trữ.it may be utilized to alter the data fetched by a query based on a condition. Within that context, the Case Statement is ideally suited to both static queries, as well as dynamic ones, such as those that you would find inside a stored procedure. |