oracle 多行数据合并一行数据
在工作中遇见的oracle知识,多行合并成一行,记录一下
1.取出需要的数据,代码:
(SELECT to_char(m.f_meetdate, 'yyyy-MM-dd'),
decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)'),
m.f_meetingresult
FROM tb_guar_meetrecord m
where m.f_billid = 1600
and m.f_billcode = 'period')
取出的数据:

2.现在想把这两行数据合并成一行,并且一行的多字段合并成一个字段;
代码:
(SELECT (to_char(m.f_meetdate, 'yyyy-MM-dd') || ' ' ||
decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)') || ' ' ||
m.f_meetingresult)
FROM tb_guar_meetrecord m
where m.f_billid = 1600
and m.f_billcode = 'period')
取出的数据:

3.现在就要把这个两行合并,需要使用oracle wm_concat(column)函数实现;
代码:
(SELECT (replace(wm_concat(to_char(m.f_meetdate, 'yyyy-MM-dd') || ' ' ||
decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)') || ' ' ||
m.f_meetingresult),
',',
'<br/>'))
FROM tb_guar_meetrecord m
where m.f_billid = 1600
and m.f_billcode = 'period')
取出的数据:

这样就实现多行数据合并成一行了。
replace(wm_concat(name),',','<br/>')加上replace是把取出的数据中的‘,’换成我想要的‘<br/>’。
上面用到了decode函数,这个函数和if判断语句效果相同。
oracle 多行数据合并一行数据的更多相关文章
- Oracle多行记录合并的几种方法
今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nulla ...
- SQL Server 将两行或者多行拼接成一行数据
一个朋友,碰到一个问题. 就是查询出来的结果集,需要每隔三行.就将这三行数据以此拼接为一行显示.起初我想着用ROW_NUMBER加CASE WHEN去做,发现结果并非我预期那样. 结果如下: 由于别人 ...
- Oracle使用%rowtype变量存储一行数据
在Oracle中,%rowtype是用来存储一行数据的 语法: rowType_name table_name%rowtype rowType_name :变量名 table_name:指定的表名 具 ...
- Oracle多行记录合并自定义函数
在oracle数据库中,进行字段合并,可以使用wm_concat(column)函数,但是在这种方法不被Oracle所推荐,因为WMSYS用户用于Workspace Manager,其函数对象可能因版 ...
- 数据库多行数据合并一行(sqlserver、Oracle、Mysql)
我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如: 表结构: ),coursename )); 需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中 ...
- 随机获取oracle数据库中的任意一行数据(rownum)
最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可 ...
- PCB SQL MS 将多行有序数据转为一行数据(一列转一行)
一.原数据:多行有序 SELECT CC.techname FROM PPEflow BB LEFT JOIN pubgyxxb CC ON BB.techno = CC.techno ORDER B ...
- 使用sed在匹配行之后增加一行数据
需求:在原来大量的shell文件中,给出了错误信息打印,现在要求打印错误后直接退出脚本. if [ $? -eq 0 ];then echo_green "done!" else ...
- ASP.NET中Dataset的table数据合并、数据截取、数据排序
1.两个相同字段表的合并: public static DataSet CombineTables(DataSet _ds, DataTable _dt1, DataTable _dt2) { Dat ...
随机推荐
- 3Ds Max FTL:Virtual device creation failed.
1.在安装完成并激活3DsMax2017中文版后,启动提示:渲染错误消息:FTL: Virtual device creation failed.(中文译:虚拟设备的创建失败). 2.关闭渲染错误消息 ...
- 1101 Quick Sort(25 分
There is a classical process named partition in the famous quick sort algorithm. In this process we ...
- Mysql与Sql server,Sum函数跟Count函数
两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...
- Linux Shell命令系列(1)
1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹.“ls -l”命令以详情模式(long listi ...
- vs2017 运行所选代码生成器时出错
[转]https://blog.csdn.net/sunshineyang1205/article/details/80211313 ASPNET MVC Core中像Controller中添加控制器 ...
- 性能测试学习第六天_loadrunner录制的一些问题
1.录制脚本的两种查看方式(脚本查看和树查看) 2.录制选项 在vugen界面点击开始录制,如下图,点击选项,即进入录制选项界面 重点讨论录制选项下 基于HTML的脚本和基于URL的脚本 注:菜单栏图 ...
- ActionListener 监听事件源产生的事件
用户在窗体上对组件进行一定动作,比如鼠标点击,会产生一些相应的事件,如ActionEvents,ChangeEvents,ItemEvents等,来响应用户的鼠标点击行为.通过实现ActionList ...
- c#基础 函数传值
随便新建个控制台程序做个演示! 1.最基础,最普通的传值方式: static void Main(string[] args) { ); Console.WriteLine("x:" ...
- OpenStack Ocata Telemetry 警告服务部署
下列操作在控制节点上进行: 1 准备条件 在配置OpenStack Telemetry服务之前,你必须创建数据库.服务凭证和API端点. 1.1 数据库 以root用户连接数据库服务器,创建glanc ...
- 第6章 传输层(详解TCP的三次握手与四次挥手)
第6章 传输层 传输层简介 传输层为网络应用程序提供了一个接口,并且能够对网络传输提供了可选的错误检测.流量控制和验证功能.TCP/IP传输层包含很多有用的协议,能够提供数据在网络传输所需的必要寻址信 ...