Oracle a列和b列 当某行a列不为空b列为空,自动把B列不为空A列为空的数据的B列填充a列的空处,使两行数据变为一行数据
合并为:
测试 000109 药物瘾 自动出院 000123 挥发性溶剂精神和行为障碍
这种有办法弄成结果为 aaaccc bbbddd 这样的两行数据吗?
追答乱序可以么?可能是aaaccc bbbddd ,也可能是aaaddd bbbccc,因为并没有判断条件,没办法控制谁在前面。
我的办法是分开查询后,利用rownum进行关联,这样就是一行了。
比如
select a.姓名,a.住院号,b.姓名1,b.住院号1 from (select rownum rn_1,姓名,住院号 from table) a, (select rownum rn_2,姓名1,住院号1 from table) b where a.rn_1=b.rn_2
只是我们办法确定哪一个在前面,如果每个子查询都直接排序,似乎也不一定就完全对(而且一定非常消耗资源)。不过这样能保证只有1个,你看看行不行吧。
具体怎么写呢?
oracle 两行数据合并为一行数据
合并可以做到,不过如果不是单一的一条记录,那不就变成笛卡尔积了?比如有两行不同姓名的行,再有两行不同姓名1的行。那么你得到的结果就是4行(也就是笛卡尔积),而且内容全不完全都不同,这个结果应该不是你要的吧。比如前面的两行内容为a a a;b b b(一个字母表示一个字段...
oracle中如何把表中具有相同值列的多行数据合并成一行
有两种方法:
利用Oracle分析函数实现多行数据合并为一行
DEPTNO ENAME_PATH ENAME_PATH_RANK CLARK KING MILLER CLARK KING KING MILLER CLARK KING MILLER DEPTNO ENAME_PATH ENAME_PATH_RANK ADAMS FORD JONES SCOTT SMITH ADAMS FORD JONES SCOTT FORD JONES SCOTT SMITH ADAMS FORD JONES FORD JONES SCOTT JONES SCOTT SMITH ADAMS FORD FORD JO...
求助,oracle多行数据合并成一行
select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_NAME GROUP BY id;
oracle 如何将连续的多行转换成一行
oracle 如何将连续的多行转换成一行 使用union合并查询结果,前提是他们是类似的数据类型。
ORACLE 两行合并成1行,数量相加,其他字段取数量较大的那一行
select name, sum(results1), max(free) from a where name = "A" ;
ORACLE数据库多行数据合并为1行的问题,急用
oracle跟sqlserver不一样,如果存储过程的话只能返回类似sqlserver中print那种 这样的话,不知道能符合你要求不 表名我起的test create table test(CSRQ varchar2(10),QYPH varchar2(20),pczl number(10,4),jyxmmc varchar2(10),jyz number(10,4),xydj number(10,4),je number(10,4))insert ...
如何将Oracle查询结果多行数据转成一行平铺显示?
group by systemcode分组,然后每个字段就max就可以了
在Oracle中,如何将多行数据合并成一行数据,如下:
如果这两行有个共同的其他列作为分组,标志他们是同一组、比如姓名编号之类的,是可以group by后min出来的。select 姓名,min(引流管) as 引流管,min(化疗) as 化疗, min(放疗) as 放疗 from 记录表 group by 姓名 ;
Oracle数据库 两个select查询 合并成一个
来设置它合并的条件。有点类似于sum()或者count()的使用方法。值得注意的是,这个函数的连接符只会出现在查询结果的中间,而且这个合并会根据分组条件无限叠加。因此,当我们需要将结果插入数据表的某一行时,请记得加上长度限制(通常我们使用substr()函数将太长的部分去掉),以免出现数据丢失等情况。