A8站源码交易平台
今天,给我们带来的案例是,列转行和拷贝的相关案例。
但介绍之前,我们先简略的学习下,行转列,列转行
行转列,断章取义,就是把几行数据变成一行或多行。
前提条件是,需求group byA8站源码交易平台

如上,数据,我们把两行数据,变成一行。
下面的SQL 是根据emp_no的不同,把两行数据变成了一行
行转列的,最重要的一点是有个可以辨认的列,这儿是emp_no
还有就是,聚合函数和,case when 语句。
现在把行转列,之后的数据变成,两行数据的进程,叫做列转行。
如上面SQL 我们想把一行数据变成2行,需求有个2行数据的中心表,
然后进行笛卡尔积,在此基础上通过case when 语句变成我们想要的效果
以上就是,简略的行转列和列转行
我们在上面的,列转行的进程中,应用了拷贝的概念
需求如下
有如下两个表
想得到如下效果
我们从效果中,可以看出根据fn_a2的值,会拷贝那么多行,且fn_b1和fn_b2值闪现一次,是根据fn_b3=1等于1的时分,fn_b3是根据fn_a2的值的大小,从1初步增大到fn_a2中止
A8站源码交易平台

从上面的SQL中,我们运用一个c 表,把a 表进行拷贝,拷贝的大小跟nf_a2的值相同
在这个基础上,我们只需求left outer join Table_b 表就行了
这个跟我们的终究的效果只差一步了,就是fn_b1,fn_b2 闪现的有点多了
我们只需求在fn_b3=1的时分闪现就行了
这样我们就得到了,我们想要的效果,这儿还有个小瑕疵的话就是null
这个可以用ifnull函数替换就可以
这样就跟需求相同。
我们往常,会碰到各种奇葩需求,但是我们不用烦恼,SQL如同解数学题相同,只需掌握中心部分,剩下的就便利的处理。
A8站源码交易平台
A8站源码交易平台
今天,给我们带来的案例是,列转行和拷贝的相关案例。
但介绍之前,我们先简略的学习下,行转列,列转行
行转列,断章取义,就是把几行数据变成一行或多行。
前提条件是,需求group byA8站源码交易平台
如上,数据,我们把两行数据,变成一行。
下面的SQL 是根据emp_no的不同,把两行数据变成了一行
行转列的,最重要的一点是有个可以辨认的列,这儿是emp_no
还有就是,聚合函数和,case when 语句。
现在把行转列,之后的数据变成,两行数据的进程,叫做列转行。
如上面SQL 我们想把一行数据变成2行,需求有个2行数据的中心表,
然后进行笛卡尔积,在此基础上通过case when 语句变成我们想要的效果
以上就是,简略的行转列和列转行
我们在上面的,列转行的进程中,应用了拷贝的概念
需求如下
有如下两个表
想得到如下效果
我们从效果中,可以看出根据fn_a2的值,会拷贝那么多行,且fn_b1和fn_b2值闪现一次,是根据fn_b3=1等于1的时分,fn_b3是根据fn_a2的值的大小,从1初步增大到fn_a2中止
A8站源码交易平台
从上面的SQL中,我们运用一个c 表,把a 表进行拷贝,拷贝的大小跟nf_a2的值相同
在这个基础上,我们只需求left outer join Table_b 表就行了
这个跟我们的终究的效果只差一步了,就是fn_b1,fn_b2 闪现的有点多了
我们只需求在fn_b3=1的时分闪现就行了
这样我们就得到了,我们想要的效果,这儿还有个小瑕疵的话就是null
这个可以用ifnull函数替换就可以
这样就跟需求相同。
我们往常,会碰到各种奇葩需求,但是我们不用烦恼,SQL如同解数学题相同,只需掌握中心部分,剩下的就迎刃而解。
A8站源码交易平台