不知道小伙伴们创造没有,在口试中,数据库的查询都是必问的!
更有甚者,口试官会直接让我们在答题纸上手写SQL代码
个中数据库表的行列转换查询,便是常常稽核的一道题目!

二. 行转列需求展示

我们先来看看MySQL实现行转列查询的一个需求。

php读写mysql行列值MySQL数据库行列转换查询你知道吗 React

先给大家展示一下效果图,按行查询的结果如下图所示:

行转列后查询的结果如下图所示:

三. 代码实现

此处用到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子句的利用。
小伙伴们可以对照代码多练习加深理解,下次再遇见类似的问题该当就不成问题啦!