问题:
给定一个包含事务详细信息的数据库表,是吗?可以生成两列“收入金额”和“费用金额”,根据是否存在分隔交易金额它们使用 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中文网其他相关文章!