Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Biểu thức trường hợp so với Tuyên bố trường hợp

CASE biểu thức đánh giá một giá trị, tức là nó được sử dụng để đánh giá một trong số các kết quả, dựa trên một số điều kiện.
Ví dụ:

SELECT CASE
    WHEN type = 1 THEN 'foo'
    WHEN type = 2 THEN 'bar'
    ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`

CASE câu lệnh thực thi một trong một tập hợp các câu lệnh, dựa trên một số điều kiện.
Ví dụ:

CASE
    WHEN action = 'update' THEN
        UPDATE sometable SET column = value WHERE condition;
    WHEN action = 'create' THEN
        INSERT INTO sometable (column) VALUES (value);
END CASE

Bạn thấy chúng giống nhau như thế nào, nhưng tuyên bố không đánh giá thành một giá trị và có thể được sử dụng riêng, trong khi biểu thức cần phải là một phần của biểu thức, ví dụ:một truy vấn hoặc một nhiệm vụ. Bạn không thể sử dụng câu lệnh trong một truy vấn, vì một truy vấn không thể chứa các câu lệnh, chỉ có các biểu thức cần đánh giá một điều gì đó (theo một cách nào đó, bản thân truy vấn là một câu lệnh), ví dụ:SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE vô nghĩa.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql hoặc / và mức độ ưu tiên?

  2. Ràng buộc khóa ngoại trong khi kết xuất dữ liệu

  3. Sử dụng utf8 hay không - Vấn đề mã hóa ký tự MySQL và PHP

  4. Làm thế nào để lấy Tổng từ hai bảng?

  5. Làm cách nào để tôi có thể lặp qua tất cả các hàng của bảng? (MySQL)