Oracle PL/SQL 合并文本列
来源:互联网 发布:电信网络制式频段 编辑:程序博客网 时间:2024/06/06 12:34
需要将多行合并为一行。
表结构如下:
NAME Null Type
------------------------ --------- -----
N_SEC_CODE NOT NULL CHAR(6)
C_RESEARCHER_CODE NOT NULL VARCHAR2(20)
此表保存了“股票”与“研究员”的对应关系数据,一般而言,对于同一只股票而言,可能有多个研究员
对其进行跟踪研究。所以目前遇到一个要求,需查询出每只股票和对应的研究员(研究员代码间,使用逗号分隔)。
例如有如下数据:
000297 chenpeng
000297 liusu
合并处理后需显示为:
000297 chenpeng,liusu
方法1:
SELECT n_sec_code, TRANSLATE (LTRIM (text, '/'), '*/', '*,') researcherList
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,
lvl DESC) rn,
n_sec_code, text
FROM (SELECT n_sec_code, LEVEL lvl,
SYS_CONNECT_BY_PATH (c_researcher_code,'/') text
FROM (SELECT n_sec_code, c_researcher_code as c_researcher_code,
ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x
FROM m_researcher_stock_rel
ORDER BY n_sec_code, c_researcher_code) a
CONNECT BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x))
WHERE rn = 1
ORDER BY n_sec_code;
方法2(10g):
SELECT n_sec_code, wmsys.wm_concat (c_researcher_code) as result
FROM m_researcher_stock_rel
GROUP BY n_sec_code
- Oracle PL/SQL 合并文本列
- Oracle PL/SQL 合并文本列
- PL/SQL Developer导入导出Oracle数据库SQL文本
- oracle 列合并
- oracle 列合并
- oracle列合并
- Oracle 列合并
- sql 合并行为列
- sql合并列 解决办法
- sql 合并列
- sql列合并
- SQL 列内容合并
- sql 语句合并列
- Oracle 11g PL/SQL程序块,存储图片等BLOB字段类型的列PL/
- PL/SQL Developer_如何快速获得表名或列名的文本形式
- PL/SQL Developer_如何快速获得表名或全部列名的文本形式
- pl/sql触发器案列
- ORACLE PL/SQL 基础
- 新手开始学程序,学习什么语言好呢?呵呵
- VBS脚本简明教程
- 搜索算法:IDA*算法
- 大家好!
- C++ 初学者指南 第八章(6)
- Oracle PL/SQL 合并文本列
- 风之谷
- 梭子鱼反垃圾邮件防火墙使用心得
- Linux网络通讯命令ping
- memcached 下载地址
- Latent Dirichlet Allocation详解
- 操作系统的线性地址
- 求a的N次方
- 你为谁工作-放弃责任就是放弃成功