在工作中遇见的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 多行数据合并一行数据的更多相关文章

  1. Oracle多行记录合并的几种方法

    今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nulla ...

  2. SQL Server 将两行或者多行拼接成一行数据

    一个朋友,碰到一个问题. 就是查询出来的结果集,需要每隔三行.就将这三行数据以此拼接为一行显示.起初我想着用ROW_NUMBER加CASE WHEN去做,发现结果并非我预期那样. 结果如下: 由于别人 ...

  3. Oracle使用%rowtype变量存储一行数据

    在Oracle中,%rowtype是用来存储一行数据的 语法: rowType_name table_name%rowtype rowType_name :变量名 table_name:指定的表名 具 ...

  4. Oracle多行记录合并自定义函数

    在oracle数据库中,进行字段合并,可以使用wm_concat(column)函数,但是在这种方法不被Oracle所推荐,因为WMSYS用户用于Workspace Manager,其函数对象可能因版 ...

  5. 数据库多行数据合并一行(sqlserver、Oracle、Mysql)

    我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如: 表结构: ),coursename )); 需要将以上数据按照用户名分组,所选课程列不同项之间用逗号隔开,在一行中 ...

  6. 随机获取oracle数据库中的任意一行数据(rownum)

    最近看oracle资料的时候,了解rownum的概念,以前只知道对数据库表进行简单的增删改查: 看到了rownum的概念后,突然想到了好多业务场景应该都可以适用的,比如在进行随机发奖的时候, 我们就可 ...

  7. PCB SQL MS 将多行有序数据转为一行数据(一列转一行)

    一.原数据:多行有序 SELECT CC.techname FROM PPEflow BB LEFT JOIN pubgyxxb CC ON BB.techno = CC.techno ORDER B ...

  8. 使用sed在匹配行之后增加一行数据

    需求:在原来大量的shell文件中,给出了错误信息打印,现在要求打印错误后直接退出脚本. if [ $? -eq 0 ];then echo_green "done!" else ...

  9. ASP.NET中Dataset的table数据合并、数据截取、数据排序

    1.两个相同字段表的合并: public static DataSet CombineTables(DataSet _ds, DataTable _dt1, DataTable _dt2) { Dat ...

随机推荐

  1. 3Ds Max FTL:Virtual device creation failed.

    1.在安装完成并激活3DsMax2017中文版后,启动提示:渲染错误消息:FTL: Virtual device creation failed.(中文译:虚拟设备的创建失败). 2.关闭渲染错误消息 ...

  2. 1101 Quick Sort(25 分

    There is a classical process named partition in the famous quick sort algorithm. In this process we ...

  3. Mysql与Sql server,Sum函数跟Count函数

    两者均是统计类函数,都不计算NULL字段!!! 单纯计算行数的话,count的效率比sum的效率高 MySQL SUM()函数介绍 SUM()函数用于计算一组值或表达式的总和,SUM()函数的语法如下 ...

  4. Linux Shell命令系列(1)

    1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹.“ls -l”命令以详情模式(long listi ...

  5. vs2017 运行所选代码生成器时出错

    [转]https://blog.csdn.net/sunshineyang1205/article/details/80211313 ASPNET MVC Core中像Controller中添加控制器 ...

  6. 性能测试学习第六天_loadrunner录制的一些问题

    1.录制脚本的两种查看方式(脚本查看和树查看) 2.录制选项 在vugen界面点击开始录制,如下图,点击选项,即进入录制选项界面 重点讨论录制选项下 基于HTML的脚本和基于URL的脚本 注:菜单栏图 ...

  7. ActionListener 监听事件源产生的事件

    用户在窗体上对组件进行一定动作,比如鼠标点击,会产生一些相应的事件,如ActionEvents,ChangeEvents,ItemEvents等,来响应用户的鼠标点击行为.通过实现ActionList ...

  8. c#基础 函数传值

    随便新建个控制台程序做个演示! 1.最基础,最普通的传值方式: static void Main(string[] args) { ); Console.WriteLine("x:" ...

  9. OpenStack Ocata Telemetry 警告服务部署

    下列操作在控制节点上进行: 1 准备条件 在配置OpenStack Telemetry服务之前,你必须创建数据库.服务凭证和API端点. 1.1 数据库 以root用户连接数据库服务器,创建glanc ...

  10. 第6章 传输层(详解TCP的三次握手与四次挥手)

    第6章 传输层 传输层简介 传输层为网络应用程序提供了一个接口,并且能够对网络传输提供了可选的错误检测.流量控制和验证功能.TCP/IP传输层包含很多有用的协议,能够提供数据在网络传输所需的必要寻址信 ...