Kettle 行列互换之——行转列(多列数据合并成一列变为多行)

原始需求如下:

业务系统设置成这样,见截图。

工资项目为了方便录入,都是做成列的。

但是这些数据需要和另外的费用报销系统的数据关联,费用报销系统的费用项目是横向的,用费用项目、金额的多行来表达。那么这里工资的数据如何转换成行呢?

在Kettle里面做一个列转行的转换就行。参考如下。

其中表输入的数据预览如下。

行专列设置如下:其中第1列是选择字段,第2、3列是手工填写

转换后的工资数据都会放入到最近的一个重新命名的工资字段里面的,所以把这个字段改为金额。

按照需求实现了多列合并到一列多行的数据。

【Kettle置顶】Kettle 系列随笔

原文地址:https://www.cnblogs.com/Bruce_H21/p/9613910.html

时间: 2024-11-05 18:36:55

Kettle 行列互换之——行转列(多列数据合并成一列变为多行)的相关文章

在WPS或Excel中多列合并成一列合并后中间加空格或-或逗号的写法,可参照以下方法,wps与excel操作与用法都相同

使用文本连接符&就可以做到了.例如要将A列和B列的数据连接并以逗号分隔,显示在C列,可以在C1中输入以下公式=A1&","&B1公式输入完成后,将C1的内容向下填充即可. 如果是需要合并两列的内容,操作上则需要多几个步骤了,这里以A列和B列的数据连接为例,方法如下: 在原本的C列前面插入一列(左键点击C列的列标→右键→插入) 在C1中输入公式=A1&","&B1 将C1向下填充 选择C列,然后复制(右键→复制) 点击A列,鼠标

SQL实用技巧:如何将表中某一列的部分数据合并到一行中

select *,stuff(select ‘,’ + fieldname from table1 for xml path(”)),1,1,”)  as  field from table2 for xml path(”) ,自从 SQL Server2005及更高版本提供了一个新查询语法 ,主要是用于将一列中的部分数据合并到一个单元格中: stuff()函数主要是用于将制定位置的字符串用特定的字符串替换: 原文地址:https://www.cnblogs.com/chenshc/p/1182

SQL 查询数据后行数据合并为列

SQL 将查询后得到的多行数据中的某一列转为一列,如原查找后的结果为: USER_NAME 张三 李四 王五 现要将其合并为: CUSTOMER 张三,李四,王五 SQL语句如下:select STUFF((select ','+USER_NAME from tbale where USER_NAME = '' for xml path('')), 1, 1, '') CUSTOMER 其中,stuff为sql封装好的一个方法函数,用于删除指定长度的字符并在指定的起始点插入另一组字符. 语法:S

table 合并行和列

table合并行列,以及拆分 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"

行列互换

---psydbnew (PSYP_Trends_GetTestStressorAvgPoint)SELECT QuestionNum,     sum(case when BatchClassName='第一批' then AvgPoint else 0 end )as '第一批',     sum(case when BatchClassName='第二批' then AvgPoint else 0 end )as '第二批',     sum(case when BatchClassNam

MS-SQLServer 2000 T-SQL 交叉报表(行列互换) 交叉查询 旋转查询

在MS-SQLServer 2005和oracle 中可以使用Pivot 和 Unpivot来做行列转换,不过不支持动态列哦. 在这里使用 case when then else end 语句,来实现行列转换. 如何实现动态列在最下面. 下面以学生成绩表来举例: id姓名 科目 成绩 1 张三 语文 602 张三 数学 653 张三 外语 704 李四 语文 805 李四 数学 906 李四 外语 857 王五 语文 708 王五 数学 719 王五 外语 7510 赵六 语文 6411 赵六 

剑指offer系列——二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数

题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 在做这道题的时候我最先考虑的是每次比较对角线上的元素可能可以取得较好的效果, 以查找9为例, 从1(0,0)开始,1<10,可以得出结论,10在1的右侧或下侧: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 然后看4(1,1),4<9, 1 2 8 9 2

MS SQLServer 交叉报表(行列互换)

在MS-SQLServer 2005 中可以使用pivot运算符来来实现行列转换. ,但在之前版本中必须使用 case when then else end 语句 下面以学生成绩表来举例: id姓名 科目 成绩 1 张三 语文 60 2 张三 数学 65 3 张三 外语 70 4 李四 语文 80 5 李四 数学 90 6 李四 外语 85 7 王五 语文 70 8 王五 数学 71 9 王五 外语 75 10 赵六 语文 64 11 赵六 数学 67 12 赵六 外语 76 查询后得出: 姓名

java 二维数组行列互换

代码需求: 对等行等列的二维数组进行 行列 的互换 分析过程 主对角线是保持不变 行列互换即角标互换:[0][1] => [1][0] 循环次数:外层循环行,内层循环每一行的列 示意图 代码实现 public class ArrayReverse { public static void main(String[] args) { int arry[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}}; reverse(arry); printArray(arr