如果你比较擅长写SQL,可以使用SQL Transformation

When you create an SQL transformation, you configure the following options:
¨ Mode. The SQL transformation runs in one of the following modes:

Script mode. The SQL transformation runsANSI SQL scriptsthat are externally located. You pass a script
name to the transformation with each input row. The SQL transformation outputs one row for each input row.
Query mode. The SQL transformation executes a query that you define in a query editor. You can pass
strings or parameters to the query to define dynamic queries or change the selection parameters. You can
output multiple rows when the query has a SELECT statement.

¨ Passive or active transformation. The SQL transformation is an active transformation by default. You can
configure it as a passive transformation when you create the transformation.

¨ Database type. The type of database the SQL transformation connects to.

¨ Connection type. Pass database connection information to the SQL transformation or use a connection object.

简单例子:

Select语句必须放在最前面,当有多条Select语句时,只有第一条起作用。You must configure an output port for each column in the SELECT statement. The output ports must be in the same order as the columns in the SELECT statement.

多条语句用分号分开。

select 语句是在mapping write to target 时候提交的,所以例子中的update语句其实只有更新了插入的insert语句,select作用的语句并没有update为9。

Using Static SQL Queries 例子(每行执行的SQL语句一样,只是query parameter不一样):

SELECT Name, Address FROM Employees WHERE Employee_Num =?Employee_ID? and Dept =?Dept?  (Input ports 作为query parameters)

Using Dynamic SQL Queries例子(每行执行的SQL语句都不一样):

SELECT Emp_ID, Address from ~Table_Port~ where Dept = ‘HR’ (Input port 作为动态SQL语句的一部分)

select HOSP_LEVEL_NAME ,
HOSP_CLASS_NAME ,
HOSP_MKT_NAME ,
LEVEMIR_HOSP_NAME ,
NOVOMIX50_HOSP_NAME ,
VICTOZA_HOSP_NAME ,
ORA_HOSP_FLG_NAME ,
INS_HOSP_FLG_NAME ,
DDD_FLG_NAME ,
DBD_TIER_NAME ,
EM_CITY_TYPE_NAME ,
EM_COUNTY_TYPE_NAME ,
EM_FLG_NAME ,
COUNTY_EN_TYPE_NAME ,
COMMUNITY_HOSP_TYPE_NAME ,
LEVEMIR_EXTHOSP_NAME
from (select /*+ use_hash(ex,pp) */
         ex.hosp_wid, pp.prop_type, /*pp.row_wid prop_wid,*/pp.prop_name 
          from tr_hosp_ext ex, td_prop pp
         where ex.hosp_prop_val = pp.prop_type
           and ex.hosp_prop_desc = pp.prop_id
           and ex.hosp_wid=?HOSP_WID?
            and ex.lang_id='en' and pp.lang_id='en'
           and hosp_prop_val in
               ('HOSP_LEVEL', 'HOSP_CLASS', 'HOSP_MKT',  'LEVEMIR_HOSP','NOVOMIX50_HOSP',
                'VICTOZA_HOSP','ORA_HOSP_FLG', 'INS_HOSP_FLG',/*'MATERNITY_TYPE',*/ 'DDD_FLG','DBD_TIER','EM_CITY_TYPE', 'EM_COUNTY_TYPE', 'EM_FLG',
                'COUNTY_EN_TYPE','COMMUNITY_HOSP_TYPE','LEVEMIR_EXTHOSP')) 
     /* pivot(sum(prop_wid) as wid for(prop_type) in ('HOSP_LEVEL' as HOSP_LEVEL, 'HOSP_CLASS' as HOSP_CLASS, 'HOSP_MKT' as HOSP_MKT, 'NOVOMIX50_HOSP' as NOVOMIX50_HOSP, 'VICTOZA_HOSP' as VICTOZA_HOSP, 'MATERNITY_TYPE' as MATERNITY_TYPE, 'DDD_FLG' as DDD_FLG, 'EM_FLG' as EM_FLG, 'COUNTY_EN_TYPE' as COUNTY_EN_TYPE))*/
      pivot(MAX(prop_name) as name for(prop_type) in ( 'HOSP_LEVEL' as HOSP_LEVEL, 
                                                       'HOSP_CLASS' as HOSP_CLASS, 
                                                       'HOSP_MKT' as HOSP_MKT, 
                                                       'LEVEMIR_HOSP' as LEVEMIR_HOSP,
                                                       'NOVOMIX50_HOSP' as NOVOMIX50_HOSP, 
                                                       'VICTOZA_HOSP' as VICTOZA_HOSP, 
                                                       'ORA_HOSP_FLG' as ORA_HOSP_FLG,
                                                       'INS_HOSP_FLG' as INS_HOSP_FLG,
                                                      /* 'MATERNITY_TYPE' as MATERNITY_TYPE, */
                                                       'DDD_FLG' as DDD_FLG,
                                                       'DBD_TIER' as DBD_TIER,
                                                       'EM_CITY_TYPE' as EM_CITY_TYPE ,
                                                       'EM_COUNTY_TYPE' as EM_COUNTY_TYPE,
                                                       'EM_FLG' as EM_FLG,
                                                       'COUNTY_EN_TYPE' as COUNTY_EN_TYPE,
                                                       'COMMUNITY_HOSP_TYPE' as COMMUNITY_HOSP_TYPE,
                                                       'LEVEMIR_EXTHOSP' as LEVEMIR_EXTHOSP ))

SQL Transformation相关推荐

  1. Java开发者写SQL时常犯的10个错误

    首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 -首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 »- iOS- Python- Androi ...

  2. spark创建DF的两种方式

    1.创建一个SparkContext,然后再创建SQLContext 2.先创建RDD,对数据进行整理,然后关联case class,将非结构化的数据转换成结构化数据 3.显示的调用toDF方法,将R ...

  3. 年终盘点|知数堂2017年度好文

    因为加班.约会.加班.约会,错过了知数堂无数次的公开课和技术分享~ 早上还在懊恼遗憾,现在又齐齐整整地回来了~ 而幸福就是,这种失而复得的小确幸 这篇文章内涵满满,一年的技术分享都囤这了~ 年关将至, ...

  4. informatica优化

    Contents LookUp. 1 Dynamic Lookup. 2 Session/Wofkflow.. 2 Session/task. 2 参数文件... 3 Variable/Paramet ...

  5. java 必备面试必备

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  6. 2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍

    目录 ​​​​​​​Table API & SQL 介绍 为什么需要Table API & SQL ​​​​​​​Table API& SQL发展历程 架构升级 查询处理器的选 ...

  7. SQL Server数据库六种数据移动方法

    1. 通过工具DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然, ...

  8. Flink最锋利的武器:Flink SQL入门和实战 | 附完整实现代码

    作者 | 机智的王知无 转载自大数据技术与架构(ID: import_bigdata) 一.Flink SQL 背景 Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门 ...

  9. Oracle SQL Optimizer IN VS Exists Again

    传统的SQL优化思想认为IN.Exists这2种写法不同数据量的环境中各擅胜场,Developer应当根据实际情况合理运用IN或Exists. 实际我认为,这种认识对于现代SQL优化器Optimize ...

  10. Kettle transformation 操作内容快速查询

    Kettle transformation 操作内容快速查询 背景: kettle 版本: 6.0 资源库类型:sql server 数据库  需求:快速查找整个项目中所有涉及某些关键词的表输入.sq ...

最新文章

  1. c语言分手代码大全,C语言代码大全
  2. linq replace with single call to FirstOrDefault 解决使用resharper产生的警告
  3. 学生信息的电子化管理考试题
  4. JMetro版本11.5.11和8.5.11发布
  5. 解决Fast api打印两次日志的问题
  6. git 代码回滚_git代码版本管理(1)——git版本回滚
  7. 【算法】斐波那契(黄金分割法) 查找算法
  8. maven配置(myeclipse版)
  9. linux 将ext2变成ext4文件系统
  10. IRedMail卸载升级
  11. oracle数据库lpad,Oracle的lpad与rpad函数的应用
  12. 2021年10月考试总结
  13. 新浪云生成互联网页面及域名
  14. Chrome的在线自动字幕辅助工具
  15. Android 选择器 PickerView实例,时间选择器、地址选择器、单项选择器、多项选择器自定义布局
  16. 现代密码学 | 02:流密码——1
  17. mapv地图文字标注
  18. 带状矩阵[BandMatrix]解网格图一类问题
  19. 01比特串异或 python_异或
  20. Centos7安装minio文件服务器

热门文章

  1. 计算机数字音乐我的梦,我的音乐梦
  2. 实习期间工作、学习、成长、收获总结
  3. 计算机科学有科研,计算机科学领域科研合著网演化分析
  4. 百度网页不能连接服务器错误,win10系统登陆百度浏览器提示连接服务器错误的恢复步骤...
  5. java httpclient 伪造ip_使用CURL伪造来源网址与IP
  6. 基于微信实现H5扫一扫功能详细过程
  7. poi批量导入导出Excel(一、需要建数据库表)
  8. 全文检索——Lucene
  9. a113 智能音箱芯片方案_主流智能音箱全拆解,内部分毫必见
  10. python耗时方法_Python中统计函数运行耗时的方法