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

作者&投稿:东方乔 (若有异议请与网页底部的电邮联系)
{ORACLE}请教大家怎么把多行合并成一行??~

这样吗?

select t1.push_code,t.1provincepudate,p1.provincereceivername,t2.citypudate,t2.cityreceivernamefrom t1,t2where t.push_code= t2.push_code

如果这两行有个共同的其他列作为分组,标志他们是同一组、比如姓名编号之类的,是可以group by后min出来的。
select 姓名,min(引流管) as 引流管,min(化疗) as 化疗, min(放疗) as 放疗
from 记录表
group by 姓名
;

我现在身边没有 数据库环境 这个是我以前写的SQL
你看一下,修改一下就可以了

Oracle分组查询用逗号分隔结果SQL语句

表一:
学号 姓名
1 张三
2 李四
3 王五
。。。。
表二:
学号 选修课程
1 语文
1 数学
2 英语
2 语文
3 数学
3 英语
3 历史
。。。。。
要求查处结果
学好 姓名 选修课程所有课程名称以,隔开
1 张三 语文,数学
2 李四 英语,语文
3 王五 数学,英语,历史
;
create table a_lyh_test
as
select 1 as "学号" , '张三' as "姓名" from dual
union all
select 2 as "学号" , '李四' as "姓名" from dual
union all
select 3 as "学号" , '王五' as "姓名" from dual
;
create table b_lyh_test
as
select 1 as "学号" , '语文' as "选修课程" from dual
union all
select 1 as "学号" , '数学' as "选修课程" from dual
union all
select 2 as "学号" , '英语' as "选修课程" from dual
union all
select 2 as "学号" , '语文' as "选修课程" from dual
union all
select 3 as "学号" , '数学' as "选修课程" from dual
union all
select 3 as "学号" , '英语' as "选修课程" from dual
union all
select 3 as "学号" , '历史' as "选修课程" from dual
;
select f."学号"
,f."姓名"
,ltrim(max(sys_connect_by_path(f."选修课程",','))
keep (dense_rank last order by f.pnum),',') as "选修课程"
from
(
select t."学号"
,t."姓名"
,t."选修课程"
,row_number() over(partition by t."学号" order by t."姓名") as pnum
,row_number() over(partition by t."学号" order by t."姓名")-1 as lnum
from
(
select a."学号",a."姓名",b."选修课程"
from a_lyh_test a
,b_lyh_test b
where a."学号" = b."学号"
) t
) f
group by f."学号",f."姓名"
connect by f.lnum = prior f.pnum and f."学号" = prior f."学号"
start with f.pnum = 1;

select id ,listagg( name, ',' ) within group ( order by id ) as name

from TABLE_NAME
GROUP BY id;

select (wm_concat(t.name)) as AllName from test t
注意数据库的限制长度

select WM_CONCAT(name) from test

你这就是行转列,行数太多不建议这样做,有很多方法,典型的有decode,多写几个decode。


谁知道oracle的发展历史,请告诉下,谢谢
经过他的强力推销,在技术上还远称不上可靠的早期ORACLE软件,成为众多客户认购的产品。 尽管他的公司最初十多年发展中被认为是对客户不负责任的典型,埃里森本人也似乎一心只想着如何做大公司,客户存在的意义仅仅在于它们是财源,但ORACLE仍以偏执于发展速度的策略证明,拥有普通技术但市场销售能力一流的公司,将战胜拥有...

文件有很多种后缀名,哪位能给我讲讲那些后缀名各代表什么文件?~_百度知...
bmp Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。 c C 语言源程序文件,在C语言编译程序下编译使用 cab Microsoft制订的压缩包格式,常用于软件的安装程序,使用Windows自带的实用程序,Extract.exe可以对其...

oracleocp认证的作用有哪些
4、超过70%的学生认为OCP认证提高了他们的收入能力。5、80%的学生证实OCP认证有助于解决复杂的问题和项目。6、超过90%的求职者表示,OCP认证使他们在寻找新工作时更加可靠。OracleOCP认证——就业优势:1.据统计,未来5年,中国市场有10万名甲骨文认证技术人才。中国共有2万人获得OCP证书,只有近300人...

Oracle常见错误代码的分析与解决一
(建议多执行一两次 有助于鉴别数据坏块是永久性的(硬盘上的物理坏块)还是随机性的(内存或硬件错误引起)) SQL>Analyze table validate structure cascade; 执行该命令后 可能会出现以下的结果 ORA 与原先错误信息有相同的参数 为永久性的物理或逻辑坏块 与原先错误信息有不同的参数 可能与内存 page space和I\/O设备...

Oracle转型云服务替代软件许可
这是与惠普公司(HP)合作的一个产品 从外观上看 这就是一个机架 里面同时运行着数据库系统和存储系统 而在机架上 除了HP的Logo之外 还多了一个oracle的鲜红色的Logo 简单说 这是一个数据仓库的解决方案 惠普负责硬件部分 Oracle负责软件部分 据介绍 该款产品的独特之处在于 把数据仓库服务器和存储...

大虾请进:oracle数据库超大数据量的处理
(2) 不要对已生成的对象作过多的改变。 对于一些类(如:String类)来讲,宁愿在重新生成一个新的对象实例,而不应该修改已经生成的对象实例。 例: String name="Huang"; name="Wei"; name="Feng"; 上述代码生成了三个String类型的对象实例。而前两个马上就需要系统进行垃圾回收处理。如果要对字符串进行连接的...

Oracle 10G和Oracle 11G有什么分别
另外,一种新的顾问软件 — 数据恢复顾问,可自动调查问题、充分智能地确定恢复计划并处理多种故障情况,从而可以极大地缩短数据恢复所需的停机时间。Oracle快速文件 Oracle数据库11g具有在数据库中存储大型对象的下一代功能,这些对象包括图像、大型文本对象或一些先进的数据类型,如XML、医疗成像数据和三维...

用了文件恢复后硬盘里莫明其妙多了许多东西 请求助!!
在Oracle 10g数据库中,引入了一个回收站(Recycle Bin)的数据库对象。回收站,从原理上来说就是一个数据字典表,放置用户Drop掉的数据库对象信息。用户进行Drop操作的对象并没有被数据库删除,仍然会占用空间。除非是由于用户手工进行Purge或者因为存储空间不够而被数据库清掉。数据库有了这样的功能,...

涂抹Oracle:三思笔记之一步一步学Oracle内容简介
最后,第五部分深入探讨数据库和实例的体系结构,附录部分则提供了SQLLDR、IMP、EXP、IMPDP和EXPDP命令的详细参数,以便读者在实际操作中灵活运用。无论你是初次接触Oracle的开发者,还是有一定经验的DBA,或是教育工作者,这本书都提供了丰富的实例和实用指南,助你逐步掌握Oracle的使用和维护技巧。

oracle视频教程哪个好
讨论,与其他学员共享学习经验。此外,很多在线教育平台还提供学习证书和证书课程,有助于学员的职业发展。总之,选择好的Oracle视频教程对于学习Oracle数据库至关重要。官方课程或知名在线教育平台的课程系列通常质量较高,能够提供系统的学习内容、丰富的案例和实践机会,帮助学员快速掌握Oracle数据库的应用。

蒙阴县17796712681: 在Oracle中,如何将多行数据合并成一行数据,如下: -
原杨天晴: 如果这两行有个共同的其他列作为分组,标志他们是同一组、比如姓名编号之类的,是可以group by后min出来的. select 姓名,min(引流管) as 引流管,min(化疗) as 化疗, min(放疗) as 放疗 from 记录表 group by 姓名 ;

蒙阴县17796712681: {ORACLE}请教大家怎么把多行合并成一行?? -
原杨天晴: select a.PUSH_CODE,a.PROVINCEPUDATE,a.provinceRECEIVERNAME,b.CITYPUDATE,b.CITYRECEIVERNAME from table1 a, table2 b where a.PUSH_CODE=b.PUSH_CODE

蒙阴县17796712681: ORACLE数据库多行数据合并为1行的问题,急用 -
原杨天晴: 你看看是不是这样的,你数据排版太混乱了 select csrq,qyph,pczl,wm_concat(jyxmmc),wm_concat(jyz),xydj,je from 表名 group by csrq,qyph,pczl,xydj,je ----------补充----------- oracle跟sqlserver不一样,如果存储过程的话只能返回类似sqlserver中print...

蒙阴县17796712681: 在oracle中使用cursor合并多行数据 -
原杨天晴: SQL> create table idtable (id number,name varchar2(30)); Table created SQL> insert into idtable values(10,'ab');1 row inserted SQL> insert into idtable values(10,'bc');1 row inserted SQL> insert into idtable values(10,'cd');1 row inserted SQL> ...

蒙阴县17796712681: oracle怎么把多个列(字段)合并成一列.把下面的日期合并在一起 -
原杨天晴: 是不是要把三个date放一列,三个ru放一列,一共组合成两列: select date_a, ru_a from table union all select date_b, ru_b from tableunion all select date_c, ru_c from table

蒙阴县17796712681: oracle中返回多行的同一字段,并拼装成一行 -
原杨天晴: 看个例子 SQL> select * from test; ID SE NAME---------- -- ---------- 1 clark 2 johns 3 james SQL> create table test1(id int,name varchar2(10)); 表已创建.SQL> insert into test1 values(1,''); 已创建 1 行.SQL> insert into test1 values(2,''); 已创...

蒙阴县17796712681: Oracle 多行如何转换为1行?
原杨天晴: 估计要写过程才能实现CREATE OR REPLACE PROCEDURE sp_test ISi int :=0j ints nvarchar2beginselect count(username) into i from user;while i<j loopselect username || ' ' into s from user;j=j+1;end loop;select s from dual;end;

蒙阴县17796712681: Oracle中多行合并为一列,具体内容请看问题补充,谢谢 -
原杨天晴: select name,case when course='语文' then course end course1,case when course='语文' then score end score1,case when course='数学' then course end course2,case when course='数学' then score end score2,case when course='英语' then course end course3,case when course='英语' then score end score3 from mytable group by name

蒙阴县17796712681: oracle 怎么将多行拼接字符串 -
原杨天晴: select t1.b || '-' || t2.bfrom (select a, b from a where d = 1) t1,(select a, replace(wm_concat(c), ',', '-') bfrom astart with d = 1connect by b = prior cgroup by a) t2where t1.a = t2.a

蒙阴县17796712681: ORACLE数据库中,怎么把3行的数据组成一行 -
原杨天晴: 可以 select wmsys.wm_concat(to_char(sysug.name))from sys_p_user_ug sysu, sys_p_user_group sysugwhere sysu.user_id=t.forward_per and sysu.user_group_code=sysug.code and sysu.user_id=1 group by sysu.user_id 支持10g以上版本 请参照

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网