为了根据特定条件将表中的一列透视成多列,SQL查询可以使用CASE WHEN表达式。但是,在实现此方法时,由于缺少分组,用户可能会遇到不正确的结果。
为了解决这个问题,下面提供了一个包含SUM()聚合函数和正确分组的修改后的查询:
<code class="language-sql">SELECT name, SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1, SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2 FROM bank GROUP BY name</code>
此改进后的查询将产生所需输出:
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
以上是如何使用 CASE WHEN 和 GROUP BY 在 SQL 中正确透视列?的详细内容。更多信息请关注PHP中文网其他相关文章!