DB2 SQL 递归实现多行合并
最终效果

原始数据:

转换脚本:
WITH post_a AS (
SELECT DISTINCT T.EMP_NO,S.CODE_ FROM inscndb.DTFMA000_EMP_POST T ,VIEW_BI_POST S
WHERE T.POST||'-'||POST2 = S.POST ),
post_b AS (SELECT emp_no,code_,ROW_NUMBER() OVER(PARTITION BY EMP_NO ORDER BY EMP_NO) row_num FROM post_a),
post_c(emp_no,code_,row_num) AS
(SELECT post_b.emp_no,CAST(post_b.code_ AS VARCHAR(100)) AS code_,post_b.row_num FROM post_b
WHERE post_b.row_num = 1
UNION ALL
SELECT post_b.emp_no,
CAST( post_c.code_|| ',' || post_b.code_ AS varchar(100)) AS code_,post_b.row_num
FROM post_b,post_c
WHERE post_b.row_num=(post_c.row_num+1) AND post_b.emp_no = post_c.emp_no
)
SELECT c.emp_no,c.code_,c.row_num
FROM post_c c
WHERE NOT EXISTS (SELECT 1 FROM post_c cc WHERE c.emp_no = cc.emp_no AND c.row_num < cc.row_num)
ORDER BY c.emp_no
;
DB2 SQL 递归实现多行合并的更多相关文章
- SQL语句 分组 多行合并成一行
		
,,'')) FROM Table d GROUP by Id 另外: sql 单引号转义:两个单引号转义为一个单引号 set @sql='STUFF((SELECT '','' + Names FR ...
 - (转载)按行合并两个sql的查询结果
		
(转载)http://blog.csdn.net/wxwstrue/article/details/6784774 Union all join 是平行合并 为水平连接 Union all 是垂直合并 ...
 - SQL实现多行合并一行 .
		
ORACLE纯SQL实现多行合并一行[转] 项目中遇到一个需求,需要将多行合并为一行.表结构如下:NAME Null Type ...
 - ORACLE纯SQL实现多行合并一行
		
项目中遇到一个需求,需要将多行合并为一行.表结构如下:NAME Null Type---------------------- ...
 - mysql  多行合并一列
		
mysql 多行合并一列 使用的函数为: GROUP_CONCAT(exp) 其中exp 的参数类似如下: (field order by field desc separator ';') ...
 - DB2 SQL性能调优秘笈
		
SQL优化技巧 1.去除在谓词列上编写的任何标量函数 2.去除在谓词列上编写的任何数学运算 3.SQL语句的Select部分只写必要的列 4.尽可能不用Distinct 5.尽量将In子查询重写为Ex ...
 - DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=2 (转载)
		
http://blog.csdn.net/xiyuan1999/article/details/5706230 DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, ...
 - [Oracle]行列转换(行合并与拆分)
		
使用wmsys.wm_concat 实现行合并 在 Oracle 中, 将某一个栏位的多行数据转换成使用逗号风格的一行显示.能够使用函数 wmsys.wm_concat 达成. 这个在上一篇 or ...
 - SQL列转行,行转列实现
		
在工作中,大家可能会遇到一些SQL列转行.行转列的问题,恰好,我也遇到了,就在此记录一下.此处所用的是SQLServer2008R2. 行转列,列转行,都要预先知道要要处理多少数据,在此我就以三种方案 ...
 
随机推荐
- Android(java)学习笔记85:案例拨号程序
			
手机拨号程序:(只有程序代码) package cn.itcast.phone; import android.app.Activity; import android.content.Intent; ...
 - 【gradle报错】error: package org.apache.http does not exist
			
导入项目的时候gradle报错 error: package org.apache.http does not exist 解决方法: 在build.gradle中加入 android { use ...
 - linux-搜索
			
grep显示文件中的匹配行 grep 参数 字符串 文件名 -c 输出匹配的行数 -v输出不匹配行 不加参数 :输出匹配的行 经常和管道符一起使用 eg:ps -ef|grep tom ...
 - 【解决】应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。
			
换了SSD硬盘,装了Windows 7 SP1 x64的系统.用了一段时间,突然一天有些软件打不开了.弹出下面的提示 应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序.第一时间 ...
 - 让footer固定在页面(视口)底部(CSS-Sticky-Footer)
			
让footer固定在页面(视口)底部(CSS-Sticky-Footer) 这是一个让网站footer固定在浏览器(页面内容小于浏览器高度时)/页面底部的技巧.由HTML和CSS实现,没有令人讨厌的h ...
 - c# 中日期的使用
			
上月第一天:DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01")) 上周星期天:DateTime.Par ...
 - MVC3、如何应用EntityFramework  连接MySql 数据库
			
原文:MVC3.如何应用EntityFramework 连接MySql 数据库 新的一年,新的开始. 今天总结的主题是在MySql中应用EntityFramework 的Code First模式. 开 ...
 - ios 微信细节
			
1.登录后,下次登录保存其用户名. * 官方的登录实现 * 1.把用户名和密码放在沙盒 NSString *user = self.userField.text; NSStri ...
 - MSSQL  数字钱转化为大写
			
--说明: --1.本函数范围从 毫 ~ 兆 --2.有四种精度(元,角 ,分,厘 ,毫) --3.有三种进位规则(四舍五入,接舍去,非0就入) --参数说明:dbo.MoneyToCapital( ...
 - Html的maxlength属性
			
maxlength表示文本框只能输入的字符串,多的无法输入