Báo cáo trường hợp trong bàn làm việc mysql

Biểu thức CASE của MySQL là một phần của hàm luồng điều khiển cung cấp cho chúng ta viết logic if-else hoặc if-then-else cho một truy vấn. Biểu thức này có thể được sử dụng ở bất kỳ nơi nào sử dụng chương trình hoặc truy vấn hợp lệ, chẳng hạn như mệnh đề SELECT, WHERE, ORDER BY, v.v.

Biểu thức CASE xác thực các điều kiện khác nhau và trả về kết quả khi điều kiện đầu tiên là đúng. Khi điều kiện được đáp ứng, nó dừng duyệt và đưa ra kết quả. Nếu nó không tìm thấy bất kỳ điều kiện nào đúng, nó sẽ thực hiện khối khác. Khi không tìm thấy khối khác, nó sẽ trả về giá trị NULL. Mục tiêu chính của câu lệnh CASE của MySQL là xử lý nhiều câu lệnh IF trong mệnh đề SELECT

Chúng ta có thể sử dụng câu lệnh CASE theo hai cách như sau

1. Câu lệnh CASE đơn giản

Phương pháp đầu tiên là lấy một giá trị và khớp nó với câu lệnh đã cho, như hình bên dưới

cú pháp

Nó trả về kết quả khi phép so sánh giá_trị đầu tiên trở thành đúng. Nếu không, nó sẽ trả về mệnh đề khác

Thí dụ

đầu ra

Sau khi thực hiện thành công truy vấn trên, chúng ta sẽ nhận được đầu ra sau. Ở đây, chúng ta có thể thấy rằng cột bộ phận chứa dạng đầy đủ thay vì dạng rút gọn

Câu lệnh Trường hợp MySQL cho phép bạn kiểm tra một giá trị cho nhiều điều kiện trong một truy vấn SQL. Trong bài viết này, chúng ta sẽ xem xét cách sử dụng câu lệnh tình huống trong MySQL


Cách viết Case Statement trong MySQL

Đây là cú pháp cho câu lệnh MySQL Case

select 
case 
    when condition1 then value1
    when condition2 then value2
    ...
end,
column2, column3, ...
from table_name

Trong truy vấn trên, bạn cần chỉ định tên bảng. Ngoài ra, bạn cần đề cập đến từng điều kiện mà bạn muốn kiểm tra một cột nhất định, trong câu lệnh case… end. Bạn cũng cần đề cập đến giá trị được gán cho cột nếu mỗi điều kiện là đúng, tức là cho từng trường hợp

Cũng đọc. Cách sử dụng Hợp nhất trong MySQL

Ví dụ trường hợp MySQL

Chúng ta hãy xem xét một số ví dụ về hàm MySQL Case bên dưới

Giả sử bạn có doanh số bảng sau [id, order_date, số tiền]

mysql> create table sales[id int, order_date date, amount int];

mysql> insert into sales[id, order_date, amount]
     values[1, '2021-01-01', 150],
     [1, '2021-01-02', 250],
     [1, '2021-01-03', 100],
     [1, '2021-01-04', 150],
     [1, '2021-01-05', 350];

mysql> select * from sales;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2021-01-01 |    150 |
|    1 | 2021-01-02 |    250 |
|    1 | 2021-01-03 |    100 |
|    1 | 2021-01-04 |    150 |
|    1 | 2021-01-05 |    350 |
+------+------------+--------+

tiền thưởng đọc. Cách truy vấn cột JSON trong MySQL

Đây là truy vấn SQL để nhóm các giá trị số lượng thành 3 nhóm – nhỏ hơn bằng 100, 100-300 và lớn hơn 300

mysql> select id, order_date,
     case when amount100 and amount=300 then 'greater than 300'
     end as bucket
     from sales;
+------+------------+------------------------+
| id   | order_date | bucket                 |
+------+------------+------------------------+
|    1 | 2021-01-01 | 101 to 300             |
|    1 | 2021-01-02 | 101 to 300             |
|    1 | 2021-01-03 | less than equal to 100 |
|    1 | 2021-01-04 | 101 to 300             |
|    1 | 2021-01-05 | greater than 300       |
+------+------------+------------------------+

tiền thưởng đọc. Cách tránh chèn các bản ghi trùng lặp trong MySQL

Xin lưu ý, nếu không có câu lệnh case nào thỏa mãn giá trị, thì câu lệnh CASE sẽ trả về NULL. Đây là một ví dụ

mysql> select id, order_date,
     case when amount100 and amount300 then 'greater than 300'
     end as bucket
     from sales;
+------+------------+------------------+
| id   | order_date | bucket           |
+------+------------+------------------+
|    1 | 2021-01-01 | 100 to 300       |
|    1 | 2021-01-02 | 100 to 300       |
|    1 | 2021-01-03 | NULL             |
|    1 | 2021-01-04 | 100 to 300       |
|    1 | 2021-01-05 | greater than 300 |
+------+------------+------------------+

Trong ví dụ trên, câu lệnh CASE trả về NULL cho 100, vì nó không thỏa mãn bất kỳ điều kiện nào

Câu lệnh MySQL Case rất hữu ích để tạo phân phối tần số và nhóm giá trị

Bạn cũng có thể sử dụng điều kiện WHERE để áp dụng câu lệnh tình huống trên một tập hợp con các hàng

select id, order_date,
     case when amount100 and amount=300 then 'greater than 300'
     end as bucket
     from sales
     WHERE ;


Trường hợp MySQL trong Ubiq

Công cụ báo cáo của Ubiq hỗ trợ tất cả các truy vấn SQL ở trên và giúp bạn dễ dàng hình dung các kết quả SQL theo nhiều cách khác nhau. Đây là truy vấn CASE SQL được đề cập ở trên, trong Ubiq

Cần một công cụ báo cáo cho MySQL? . Thử nó ngay hôm nay

SQL Workbench có phải là trường hợp không

Theo mặc định, nó phụ thuộc vào hệ điều hành và phân biệt chữ hoa chữ thường. Điều này có nghĩa là MySQL không phân biệt chữ hoa chữ thường trong Windows và macOS, trong khi nó phân biệt chữ hoa chữ thường trong hầu hết các hệ thống Linux. Tuy nhiên, bạn có thể thay đổi hành vi bằng cách thay đổi đối chiếu

Câu lệnh CASE trong SQL là gì?

Câu lệnh CASE là cách xử lý logic if/then của SQL. Câu lệnh CASE được theo sau bởi ít nhất một cặp câu lệnh WHEN và THEN—tương đương với IF/THEN của SQL trong Excel

MySQL có trường hợp không

Khi tìm kiếm một phần chuỗi trong MySQL với LIKE, bạn sẽ khớp phân biệt chữ hoa chữ thường theo mặc định*. Nếu bạn muốn đối sánh phân biệt chữ hoa chữ thường, bạn có thể truyền giá trị dưới dạng nhị phân và sau đó thực hiện so sánh từng byte với. so sánh từng ký tự . Điều duy nhất bạn cần thêm vào truy vấn của mình là BINARY.

Chúng ta có thể sử dụng trường hợp trong câu lệnh chọn trong SQL không?

Câu lệnh tình huống trong SQL trả về một giá trị theo một điều kiện cụ thể. Chúng ta có thể sử dụng câu lệnh Case trong các truy vấn chọn lọc cùng với mệnh đề Where, Order By và Group By . Nó cũng có thể được sử dụng trong câu lệnh Chèn. Trong bài viết này, chúng ta sẽ khám phá câu lệnh CASE và các trường hợp sử dụng khác nhau của nó.

Chủ Đề