在 MySQL 中使用 Case 语句压缩数据
在处理存储在关系数据库中的数据时,操作基于特定标准的列。这就是 CASE 语句发挥作用的地方,它提供了一种根据条件表达式动态为列分配值的方法,允许您重组数据以增强分析和报告。
示例:生成条件列
假设您有一个名为“tbl_transaction”的数据库表,其中包含 id、action_type、动作标题和动作金额。要生成两个新列 Income Amt 和 Expense Amt,我们可以利用 CASE 语句根据 action_type 列有条件地填充它们:
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;
此查询将生成类似于以下内容的输出:
ID | Heading | Income Amt | Expense Amt |
---|---|---|---|
1 | ABC | 1000 | NULL |
2 | XYZ | NULL | 2000 |
如您所见,“收入金额”列填充了“收入交易”的值,而“支出金额”列填充了“支出”的值transactions.
替代语法
MySQL 还提供 IF() 函数作为 CASE 语句的替代函数来处理条件操作。但是,在这种情况下,CASE 语句更可取,因为它在各种数据库引擎中更通用且可移植。
以上是如何使用CASE语句压缩MySQL中的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!