首頁 >資料庫 >mysql教程 >MySQL的CASE語句可以將交易金額分成收入欄位和支出欄位嗎?

MySQL的CASE語句可以將交易金額分成收入欄位和支出欄位嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-02 12:52:40351瀏覽

Can MySQL's CASE Statement Separate Transaction Amounts into Income and Expense Columns?

使用CASE 語句在MySQL 中有條件地填充列

問題:

給定一個包含事務詳細資訊的資料庫表,是嗎?可以產生兩列“收入金額”和“費用金額”,根據是否存在分隔交易金額它們使用 SQL 查詢表示收入或支出?

解決方案:

是的,使用MySQL 中的CASE 語句,可以有條件地填充列,將列分隔開基於提交的“action_type”的金額。

這是一個實作的範例查詢this:

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;

此查詢使用 CASE 語句來評估「action_type」欄位。如果“action_type”是“Income”,則它將“action_amount”的值指派給“income_amt”並將“expense_amt”設為NULL。相反,如果“action_type”為“Expense”,則將“action_amount”的值賦給“expense_amt”,並將“venue_amt”設為NULL。

如受訪者所述,MySQL 也提供了 IF( ) 函式作為 CASE 語句的替代。然而,與 MySQL 特定的 IF() 函數相比,CASE 語句由於其跨不同資料庫引擎的可移植性而成為首選。

以上是MySQL的CASE語句可以將交易金額分成收入欄位和支出欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn