MySQL学习笔记后续(开发技巧)

行转列

///此方法效率不高而且编写繁琐
///转换前
+------+-------+
| name | balls |
+------+-------+
| sjh  |    12 |
| sjh  |     5 |
| sjh  |     6 |
| hzy  |    25 |
| hzy  |    16 |
| hzy  |    11 |
| xgd  |     4 |
| xgd  |    36 |
| xgd  |    21 |
+------+-------+
select *from(
select sum(balls) as 'sjh' from ball where name='sjh' group by name) a cross join(
select sum(balls) as 'hzy' from ball where name='hzy' group by name) b cross join(
select sum(balls) as 'xgd' from ball where name='xgd' group by name) c;
///转换后
+------+------+------+
| sjh  | hzy  | xgd  |
+------+------+------+
|   23 |   52 |   61 |
+------+------+------+

行转列的高效方法

//case是当满足条件的时候执行后面语句
SELECT SUM(CASE WHEN name='sjh' THEN balls end) as 'sjh',
SUM(CASE WHEN name='hzy' THEN balls end) as 'hzy',
SUM(CASE WHEN name='xgd' THEN balls end) as 'xgd' FROM ball;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值