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

Câu lệnh tình huống trong MySQL

Có, một cái gì đó như thế này:

SELECT
    id,
    action_heading,
    CASE
        WHEN action_type = 'Income' THEN action_amount
        ELSE NULL
    END AS income_amt,
    CASE
        WHEN action_type = 'Expense' THEN action_amount
        ELSE NULL
    END AS expense_amt

FROM tbl_transaction;

Như các câu trả lời khác đã chỉ ra, MySQL cũng có IF() để làm điều này bằng cách sử dụng cú pháp ít dài dòng hơn. Tôi thường cố gắng tránh điều này vì nó là một phần mở rộng MySQL dành riêng cho SQL thường không được hỗ trợ ở những nơi khác. CASE là SQL chuẩn và dễ di động hơn trên các công cụ cơ sở dữ liệu khác nhau và tôi thích viết các truy vấn di động nhiều nhất có thể, chỉ sử dụng các phần mở rộng dành riêng cho công cụ khi giải pháp thay thế di động là đáng kể chậm hơn hoặc kém thuận tiện hơn.



  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 - Sửa lỗi - Mục nhập trùng lặp lỗi cơ sở dữ liệu WordPress cho khóa CHÍNH cho truy vấn CHÈN VÀO wp_options

  2. Mẹo nhanh về MySQL:Sử dụng hàm LENGTH và TRIM

  3. Nhập xuất khẩu dòng lệnh cơ sở dữ liệu mysql siêu nhanh

  4. Các câu lệnh chuẩn bị sẵn trong PHP PDO

  5. MySQL GROUP BY hành vi