mysql 行列转换 求高手

mysql 行列转换 求高手,第1张

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

mysql>SELECT CASE 1 WHEN 1 THEN 'one'

->WHEN 2 THEN 'two' ELSE 'more' END

->'one'

mysql>SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END

->'true'

mysql>SELECT CASE BINARY 'B'

->WHEN 'a' THEN 1 WHEN 'b' THEN 2 END

->NULL

你用case when 函数试试。

打字不易,如满意,望采纳。

复盘一下前两天MySQL的一道笔试题。

建表语句为:

这是典型的行转列 *** 作。方法有以下两种:

注意:max() 是为了能够使用 group by 根据 id 进行分组,因为每一个 id 对应的course = '语文' 的记录只有一条,所以 max() 的值就等于对应那一条记录的 score 的值。 因此sum()、min()、avg()等聚合函数都可以达到行转列的效果。

若要实现对每一列也求和,可以使用with rollup直接生成结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8628451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存