以前在做DBA时在DB里写过行转列,列转行的CODE.这两天做了一下测试用INFORMATICA来实现行列互换的功能。

列转行的SQL 实现

ENV: RMDB

TABLE: SALES

STORENAME QUARTER1  QUARTER2 QUARTER3 QUARTER4

STORE1                   100                  300                  500                  700

STORE2                   200                  400                  600                  800

SOLUTION:

SELECT STORENAME,QUARTER1 AS SALES, 1 AS QUARTER

FROM SALES

GROUP BY STORENAME,QUARTER1

UNION

SELECT STORENAME,QUARTER2 AS SALES, 2 AS QUARTER

FROM SALES

GROUP BY STORENAME,QUARTER2

UNION

SELECT STORENAME,QUARTER3 AS SALES, 3 AS QUARTER

FROM SALES

GROUP BY STORENAME,QUARTER3

UNION

SELECT STORENAME,QUARTER4 AS SALES, 4 AS QUARTER

FROM SALES

GROUP BY STORENAME,QUARTER4

  列转行的INFORMATICA 实现

1 SOURCE  TABLES 导入MAPING

2 SQLQUALIFER 读取数据

3 NORMALIZER 实现对应的列行转换,在NORMALIZER属性里设置STORENAME,QUARTER DATA(为LEVEL 1,每季度的销售值SALES为LEVEL2. QUARTER DATA的OCCURS值设为4就可实现列行转换

二  行转列的SQL 实现

ENV:

create table sales2(storename varchar(20),

sales number(9),quarter number(9))

select * from sales2

SOLUTION:

SELECT STORENAME,

MAX(CASE WHEN QUARTER=1 THEN SALES ELSE 0 END) QUARTER1,

MAX(CASE WHEN QUARTER=2 THEN SALES ELSE 0 END) QUARTER2,

MAX(CASE WHEN QUARTER=3 THEN SALES ELSE 0 END) QUARTER3,

MAX(CASE WHEN QUARTER=4 THEN SALES ELSE 0 END) QUARTER4

FROM SALES2

GROUP BY STORENAME

ORDER BY STORENAME

INFORMATICA 实现

  1 导入源表SALES2

  2 SQLQULIFER读取数据

  3 用EXPERSSION TRANSFORMATION 来判断QUARTER值来取SALES值

4 用聚合函数来取出判断后的最大值,即真正的SALES值

  5 导入到目标表或目标文件后即实现了行转列的功能。

informatica powercenter学习笔记(三)的更多相关文章

  1. informatica powercenter学习笔记(一)

    本文转摘:http://blog.itpub.net/22377317/viewspace-677137/ 1 informatica powercenter的下载: 方法一:去年我是在ORACLE ...

  2. informatica powercenter学习笔记(LookUp 使用)

    LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用 ...

  3. Informatica Powercenter学习笔记

    LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用 ...

  4. informatica powercenter学习笔记(二)

    LOOKUP TRANSFORMATION的使用点评: LOOKUP基本用法不熟的话请参考下附属信息. 用法感受: 1 LOOKUP的作用跟我们以前在EXCEL的函数功能类似,就是隔表取值.优点就是用 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. 【LOJ】 #2015. 「SCOI2016」妖怪

    题解 这道题教会我很多东西,虽然它是个傻逼三分 1.long double的运算常数是巨大的 2.三分之前的界要算对!一定要算准,不要想一个直接写上! 3.三分100次也就只能把精度往里推20多位,可 ...

  2. logstash通过tcp收集日志

    (1)标准输入输出tcp模块 1.修改配置文件 #vim /etc/logstash/conf.d/tcp.conf input { tcp { port => "5600" ...

  3. Python函数系列-一个简单的生成器的例子

    def consumer(): while True: x = yield print('处理了数据:',x) def producer(): pass c = consumer() #构建一个生成器 ...

  4. Django+Nginx+uwsgi搭建自己的博客(四)

    由于在上篇博文中仍然介绍了相当多的后端部分,导致原定于上篇介绍的前端部分“跳票”到了这篇.在此篇博文中,我将会介绍Users App和主页的前端部分,从而形成我们博客的一个雏形. 在前端部分,我们主要 ...

  5. linux下如何配置TCP参数设置详解

    设置tcp参数一定要小心谨慎,轻易不要更改线上环境,我贴一下我们线上环境中,sysctl.conf的内容,见文章底部 net.ipv4.tcp_tw_reuse    = 1  net.ipv4.tc ...

  6. 批量 修改 android eclipse 项目名

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 最外层的 文件夹名字.

  7. hihocoder #1071 : 小玩具

    闻所未闻的$dp$神题(我不会的题) 令$f[S][i]$表示子集状态为$S$,且$S$中最大联通块恰好为$i$的方案数 考虑转移,我们枚举$S$中最小的元素$v$来转移,这样就能不重 $f[S][i ...

  8. [BZOJ4784][ZJOI2017]仙人掌(树形DP)

    4784: [Zjoi2017]仙人掌 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 312  Solved: 181[Submit][Status] ...

  9. [转]runOnUiThread 、 Handler 对比(一)

      this.runOnUiThread(new Runnable() { @Override public void run() { try { Thread.sleep(1000 * 5); }  ...

  10. Codeforces Round #300 D. Weird Chess 水题

    D. Weird Chess Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/proble ...