不知道小伙伴们创造没有,在口试中,数据库的查询都是必问的!
更有甚者,口试官会直接让我们在答题纸上手写SQL代码。个中数据库表的行列转换查询,便是常常稽核的一道题目!
二. 行转列需求展示
我们先来看看MySQL实现行转列查询的一个需求。
先给大家展示一下效果图,按行查询的结果如下图所示:
行转列后查询的结果如下图所示:
三. 代码实现
此处用到max函数,这紧张是为了将无数据的字段设置为0,防止涌现字段值为NULL造成出错非常。
四. 列转行需求
我们再来看看MySQL实现列转行查询的一个需求。
现创建表test2,在未转换前查询结果如下:
列转行的sql语句:
select user_name,'语文' COURSE,CN_SCORE as SCORE from test2 union select user_name,'数学' COURSE,MATH_SCORE as SCORE from test2 union select user_name,'英语' COURSE,EN_SCORE as SCORE from test2 order by user_name,COURSE;
列转行查询的结果如下图所示:
五. 小结
末了给大家总结一下,无论是行转列或者是列转行,关键便是sql子句的利用。小伙伴们可以对照代码多练习加深理解,下次再遇见类似的问题该当就不成问题啦!