TRƯỜNG HỢP MySQL KẾT THÚC NHƯ

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

Ví 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

Hàm CASE() trong MySQL được sử dụng để tìm một giá trị bằng cách chuyển qua các điều kiện bất cứ khi nào bất kỳ điều kiện nào thỏa mãn câu lệnh đã cho, nếu không, nó sẽ trả về câu lệnh trong phần khác. Tuy nhiên, khi một điều kiện được thỏa mãn, nó sẽ ngừng đọc thêm và trả về đầu ra

Đặc trưng

  • Hàm này trả về câu lệnh trong phần khác nếu không có điều kiện nào được nêu là đúng
  • Hàm này trả về NULL nếu không có điều kiện nào đã nêu là đúng cũng như không có phần nào khác
  • Chức năng này nằm trong Chức năng nâng cao
  • Hàm này chấp nhận hai tham số là điều kiện và kết quả

cú pháp

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

Tham số

Phương pháp này chấp nhận hai tham số như được đưa ra dưới đây

  • điều kiện1, điều kiện2, …điều kiệnN. Các điều kiện cụ thể được xác định theo thứ tự chúng được nêu
  • kết quả1, kết quả2, …kết quảN. Đầu ra được chỉ định sẽ được trả về nếu điều kiện đã nêu được thỏa mãn

trả lại. Nó trả về một giá trị bằng cách chuyển qua các điều kiện bất cứ khi nào bất kỳ điều kiện nào thỏa mãn câu lệnh đã cho, nếu không, nó trả về câu lệnh trong phần khác. Và nếu không có điều kiện nào được thỏa mãn cũng như không có phần nào khác thì nó trả về NULL

ví dụ 1. Sử dụng hàm CASE() và nhận đầu ra

CREATE TABLE float01001
(  
user_id int NOT NULL AUTO_INCREMENT,
float_val float,
PRIMARY KEY(user_id)
);
INSERT float01001(float_val)  
VALUES (1.9);

INSERT float01001(float_val)  
VALUES (1.1);

INSERT float01001(float_val)  
VALUES (3.9);

INSERT float01001(float_val)  
VALUES (5.0);

INSERT float01001(float_val)  
VALUES (10.9);

SELECT float_val,
CASE
    WHEN float_val > 5 THEN "The value is greater than 5"
    WHEN float_val = 5 THEN "The value is 5"
    ELSE "The value is under 5"
END as float_txt
FROM float01001;

đầu ra

float_val  | float_txt
-------------------------------------------
  1.9      | The value is under 5
------------------------------------------- 
  1.1      | The value is under 5
-------------------------------------------
  3.9      | The value is under 5
-------------------------------------------
  5        | The value is 5
-------------------------------------------
  10.9     | The value is greater than 5

ví dụ 2

Sử dụng hàm CASE() và kiểm tra xem độ dài của giá trị float đã nêu có lớn hơn, nhỏ hơn hoặc bằng 4 không

CREATE TABLE float01001
(  
user_id int NOT NULL AUTO_INCREMENT,
float_val float,
PRIMARY KEY(user_id)
);
INSERT float01001(float_val)  
VALUES (9.0);

INSERT float01001(float_val)  
VALUES (7.7);

INSERT float01001(float_val)  
VALUES (30.91);

INSERT float01001(float_val)  
VALUES (8.0);

INSERT float01001(float_val)  
VALUES (10.9);

SELECT float_val,
CASE
    WHEN LENGTH(float_val) > 4 THEN "The length is greater than 4"
    WHEN LENGTH(float_val) = 4 THEN "The length is 4"
    ELSE "The length is less than 4"
END as float_txt
FROM float01001;

đầu ra

float_val  | float_txt
-------------------------------------------
 9         | The length is less than 4
-------------------------------------------
 7.7       | The length is less than 4
-------------------------------------------
 30.91     | The length is greater than 4
-------------------------------------------
 8.0       | The length is less than 4
-------------------------------------------
 10.9      | The length is 4

ví dụ 3

Sử dụng hàm CASE() và kiểm tra xem MRP của mục đã nêu có lớn hơn 400 hay không

CREATE TABLE package099
(  
user_id int NOT NULL AUTO_INCREMENT,
item VARCHAR(10),
mrp int,
PRIMARY KEY(user_id)
);
INSERT package099(item, mrp)  
VALUES ('book1', 350);

INSERT package099(item, mrp)  
VALUES ('book2', 500);

SELECT mrp,
CASE
    WHEN mrp > 400 THEN "Buy this item"
    ELSE "Don't buy this item"
END as txt
FROM package099;

đầu ra

mrp  | txt
------------------------------
 350 |  Don't buy this item
------------------------------
 500 |  Buy this item

Ví dụ 4

Sử dụng hàm CASE() và kiểm tra lãi lỗ

CREATE TABLE package72
(  
user_id int NOT NULL AUTO_INCREMENT,  
item VARCHAR(10),
mrp int,
sp int,
PRIMARY KEY(user_id)
);
INSERT package72(item, mrp, sp)  
VALUES ('book1', 250, 255);

INSERT package72(item, mrp, sp)  
VALUES ('book2', 350, 370);

INSERT package72(item, mrp, sp)  
VALUES ('book3', 400, 350);

SELECT mrp,sp,
CASE
    WHEN sp > mrp THEN "Profit"
    ELSE "Loss"
END as PL
FROM package72;

đầu ra

________số 8

Đăng kí. Hàm này được sử dụng để tìm một giá trị bằng cách chuyển qua các điều kiện bất cứ khi nào bất kỳ điều kiện nào thỏa mãn câu lệnh đã cho, nếu không, nó sẽ trả về câu lệnh trong phần khác

end as trong SQL là gì?

END là điểm đánh dấu đóng biểu thức CASE . Bạn phải có chính xác một câu lệnh END cho mọi câu lệnh CASE. Dấu AS được sử dụng để giới thiệu bí danh.

Làm cách nào để sử dụng điều kiện trường hợp trong MySQL?

Câu lệnh CASE duyệt qua các điều kiện và trả về giá trị khi đáp ứng điều kiện đầu tiên (giống như câu lệnh IF-THEN-ELSE). Vì vậy, 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 đúng, nó sẽ trả về giá trị trong mệnh đề ELSE.

Ký tự nào được sử dụng để chỉ sự kết thúc của MySQL?

mysql xác định vị trí câu lệnh của bạn kết thúc bằng cách tìm kiếm dấu chấm phẩy kết thúc , chứ không phải bằng cách tìm kiếm phần cuối của dòng nhập. (Nói cách khác, mysql chấp nhận đầu vào định dạng tự do. nó thu thập các dòng đầu vào nhưng không thực thi chúng cho đến khi nó nhìn thấy dấu chấm phẩy. )

Làm cách nào để sử dụng câu lệnh nhiều trường hợp trong MySQL?

Đây là 3 cách khác nhau để áp dụng câu lệnh tình huống bằng SQL. .
(1) Đối với một điều kiện duy nhất. TRƯỜNG HỢP KHI điều kiện_1 SAU ĐÓ kết quả_1 ELSE kết quả_2 KẾT THÚC NHƯ new_field_name
(2) Đối với nhiều điều kiện sử dụng AND. TRƯỜNG HỢP KHI điều kiện_1 VÀ điều kiện_2 SAU ĐÓ kết quả_1 KHÁC kết quả_2 KẾT THÚC NHƯ new_field_name