3个回答
展开全部
方法/步骤
首先我们建立一张表,名为RToC,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示。
我们往表中加入数据,分别添加小明与小花的语文和数学成绩,如图所示。
接下来,我们要进行行列转换,列应该是name,语文,数学。我们首先要考虑是如何得到列名,我们可以通过分组得到课程名称。如图所示,我们通过分组语句,从查询结果我们可以看出课程名的拼接字符串。
接下来,关键的行转列的函数pivot出场了,通过这个函数我们把分数填充到转换的列语文、数学的列值。
我们运行后,可以得到行转列的结果,如下图所示。
通过以上几个步骤,我们就可以轻松的实现行列转换了。同样,我们如果要把列转换成行, 应该怎么做呢?同样我们可以采用unpivot函数轻松实现。
展开全部
你这是Oracle数据库,给你看看我写的:
列转行
录入经营范围时候会遇到列传行的问题解决方案如下:
在temp1 表有一下字段内容:
一条sql转化列传行效果
select a,zj,zjname from temp1 unpivot(zjname for zj in(b,c,d,e,f,g,h,i,j));
行转列:
select * from tbname;
行转列之后的数据:
select pud, listagg(ud, ',') within group(order by null) as ud
from tbname
group by pud;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以看一下这个行列转换的教程网页链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询