想看更多的高级查询语句,可以看我之前的高阶常用函数超详细总结,真的,看完,你就学会80%的高级查询语法了。
传送门:
万字掌握MYSQL常用函数
一、行列转换
有些人听到可能会想到就是把第n行转为第n列,说的也不是没什么道理,但在SQL语句查询中,并非这样。行列转换是企业面试中经常会遇到的一大考点,那SQL中的行列转换到底是什么呢?相信大家看到下面的图片就明白了。
1、行转列:聚合函数+CASE WHEN / IF()语句
'''思路:
1、行转列明显行数减少了并且对姓名进行了去重,因此首先对姓名进行分组;
2、分组后返回的是姓名及三科分数,每科分数相对应一列,因此利用聚合函数和控制函数条件筛选,当subject=语文时返回语文成绩,subject=数学时返回数学成绩 ,subject=语英语时返回英语成绩
'''
select name
,max(case when subject = '语文' then score end)