mysql高级查询实例:行列转换、一行多行转换

本文介绍了MySQL中的行列转换技巧,包括使用聚合函数+CASE WHEN / IF()实现行转列,利用UNION进行列转行。同时,探讨了一行多行转换的场景,提供了一种将多行数据合并为一行的方法。对于提升SQL查询能力,特别是应对企业面试,具有较高的参考价值。
摘要由CSDN通过智能技术生成

想看更多的高级查询语句,可以看我之前的高阶常用函数超详细总结,真的,看完,你就学会80%的高级查询语法了。
传送门:
万字掌握MYSQL常用函数

一、行列转换

有些人听到可能会想到就是把第n行转为第n列,说的也不是没什么道理,但在SQL语句查询中,并非这样。行列转换是企业面试中经常会遇到的一大考点,那SQL中的行列转换到底是什么呢?相信大家看到下面的图片就明白了。
在这里插入图片描述

1、行转列:聚合函数+CASE WHEN / IF()语句

'''思路:
1、行转列明显行数减少了并且对姓名进行了去重,因此首先对姓名进行分组;
2、分组后返回的是姓名及三科分数,每科分数相对应一列,因此利用聚合函数和控制函数条件筛选,当subject=语文时返回语文成绩,subject=数学时返回数学成绩 ,subject=语英语时返回英语成绩 
'''
select name
      ,max(case when subject = '语文' then score end) 
  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值