问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

oracle 多行转多列,求SQL语句,转多列的时候可能有空列(不连续的),具体看下图,或者有疑问我会及时回答

发布网友 发布时间:2022-08-17 18:21

我来回答

1个回答

热心网友 时间:2023-10-13 13:32

以下是我 用动态SQL 实现 行列转换的实例 虽然不是你上面的几张表但是你可以根据我的写法 转换看看
--------------------------------------用动态SQL 实现行列转换
create table tb
(
t_name varchar2(10),
t_course varchar2(10),
t_score number
);

insert into tb values('张三','语文',73);
insert into tb values('张三','数学',83);
insert into tb values('张三','物理',93);
insert into tb values('张三','英语',63);
insert into tb values('李四','语文',74);
insert into tb values('李四','数学',84);
insert into tb values('李四','物理',94);
insert into tb values('李四','英语',64);
commit
select *from tb;
--------------
declare
t_name varchar2(10);
t_course1 number;
t_course2 number;
t_course3 number;
t_course4 number;
type c_type is ref cursor;
cur c_type;
begin
open cur for
'select t_name,
sum(case t_course when '''||'语文'||'''then t_score else 0 end),
sum(case t_course when '''||'数学'||'''then t_score else 0 end),
sum(case t_course when '''||'物理'||'''then t_score else 0 end),
sum(case t_course when '''||'英语'||'''then t_score else 0 end)
from tb group by t_name';
loop
fetch cur into t_name, t_course1 ,t_course2,t_course3,t_course4;
exit when cur%notfound;
dbms_output.put_line(t_name||'语文'||t_course1||'数学'||t_course2||'物理'||t_course3||'英语'||t_course4);
end loop;
close cur;
end;

满意请接受我的答案 并采纳 谢谢!追问自己到网上找了类似的,然后最终自己写出来了, 回答的那个是不对的, 值不是数字,不能用sum的; decode 这个才是核心,然后再wm_concat合并多行,得到最终结果 ;
当然也很感谢你的回答,虽然公布这个答案时才看到你的回答!^_^

oracle行转列

Oracle中行转列的操作可以通过PIVOT函数实现。以下是 Oracle数据库中的行转列操作,通常指的是将多行数据转换成多列数据的展示形式。这种转换在数据分析、报表生成等场景中非常常见。为了实现这种转换,Oracle提供了一个非常强大的函数——PIVOT。PIVOT函数的作用:PIVOT函数的主要作用是根据指定的值将数据行...

SQL两个表关联查询后如何将多行数据转换成一行多列,我查到的结果如图...

oracle 中max 加上deocde可以实现。。

...和不同字段1共同存在字段2值的记录,求SQL语句

select *, count(distinct value) from 表a group by value 结果:id value count(distinct name)3 e 1 2 f 1 最后一项是多余的,不用管就行了,目的达到。。。group by 必须放在 order by 和 limit之前,不然会报错 查询某个字段重复!select from 表a u where u.value in...

求助,oracle多行数据合并成一行

select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_NAME GROUP BY id;

oracle数据库,对多列,空集合,合并为一列查询SQL的方法?

因为oracle都是列处理函数,先利用union行转列,然后在找到每个id分组对应的最小值,再合在一起,不过如果数据量大的话,那么这种办法不那么靠谱。

oracle行转列函数

Oracle中的行转列函数主要是使用PIVOT来实现。这是一种SQL查询语句的功能,可将原本行格式的数据转化为列格式,有助于对数据的整理展示和对比分析。接下来我们将对Oracle的PIVOT函数进行详细解释。首先,Oracle数据库的PIVOT是行转列操作的一种非常有效的方法。当数据的展示和分析需求中需要针对某个或多个...

需求:SQL语句怎么拼接?都不空,前空后不空,后空前不空都怎么拼接?_百度...

:to,sysdate)需要明确一下,前、后空的时候如何给参数 补充:前参数为p_from,后参数为p_to 1. 前为空,即从求截至参数p_to时 applyTime <= p_to 2. 后为空,即从参数p_from之后 applyTime >= p_from 3. 前后都不空,即从p_from到p_to之间 applyTime between p_from and p_to ...

SQL求助,我要想在一张表新增多行,只有第一列值不同,后面的列值相同,该...

第一步,你先找个有足够多记录的表,比如我这里有个表temp,里面有很多记录。第二步,insert into 要插入记录的表 select rownum,1,0,0,9 from temp where rownum <= 要生成的行数。执行以上两步即可。针对于Oracle数据库,其他类型的数据库原理一样。另外,表temp中行数要比你要生成的行数多...

SQL语句-如何拼接多列的值?

1、插入数据 这里以MySQL数据库为例,插入原始数据用于后续实验。其他数据库的插入语法可能略有差异,请自行调整。2、在MySQL中进行串联拼接 使用concat函数进行字段拼接,语法如下:对表中的name、age字段进行拼接:结果:3、在PostgreSQL、Oracle中进行串联拼接 使用||符号进行字段拼接,语法如下:对表中的...

求sql语句。得出表中两列相减的值

1、语句如下:select A, B, A-B as C from 表1 2、计算列:可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。语句中的A-B就是计算列,as C的意思是给这个计算列起个列名叫C。...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
怎样删除qq空间的小铃铛消息? 员工处罚有哪些 我的世界和平模式指令是什么-和平模式指令介绍 车载云台选哪家便宜? “春流送客不应赊”的出处是哪里 抬金不什么 高手帮忙设计姓名藏头诗 汤莹 谢谢 “高歌犹爱思归引”的出处是哪里 8种经典月季藤本灌木微月全都有 汽车vss是什么意思? 我的QQ分组怎么没了? ms sql怎么把多行变为多列 求实用信号源的设计毕业论文 求实用信号源的设计毕业论文 碧海之命运之轮1.04正式版隐藏英雄密码 碧海之命运之轮1.04正式版攻略 苹果平板电脑不用手机号码要注册一个要怎样申请? 吞食天地-时空之轮V1.4正式版攻略 吞食天地-时空之轮V1.4正式版隐藏英雄密码 在ipadair怎么用qq号码注册码 异火灵界1.3.5隐藏英雄密码 七界之颠0.3正式版 附隐藏英雄密码和攻略 怎么用 苹果平板电脑不用手机号码要注册一个要怎样申请? 在ipadair怎么用qq号码注册码 平板怎么注册? 平板怎么注册? 出国用的在职证明怎么开的? 老公单位派他出国工作,老婆要随行。老婆办签证需要什么证件? 公司法人的妻子(老板娘)出国旅游,怎么开在职证明 南京宁美生物科技有限公司怎么样? 南京凯创生物技术有限公司怎么样? 南京凯基生物科技发展有限公司怎么样,公司性质为国企。 南京苏赛生物工程有限公司怎么样? 魅族手机没进过水为什么售后说人为进水不保修 关于魅族m8进水 苏州洁维清洁服务有限公司怎么样? That's beside the point.什么意思 孕妇9个月昨天晚上梦见鱼 买车可以用住房公积金吗 平时和人交流怎么说话 与人沟通交流说话技巧 奥比岛怎么取消关注 怎样让画在衣服上的图案不掉如题 谢谢了 电脑输入法un出来的特殊符号 电脑un是什么意思 zhinenABC 特殊符号像un那个符号怎么打 请问下这个符号怎么打 键盘打字打‘U'出现'UN'怎么办 长安之星6363内部空间尺寸是多大? 长安之星6363车身有多长 长安之星6363原厂火花塞型号 谁知道长葛梦金园黄金回收价是多少钱
  • 焦点

最新推荐

猜你喜欢

热门推荐