假设有表如下:
如何得到E列的数据(格式为模式名.表名,如PDM_DATA.T05_GMS_NAV_SPV_PCH_RDM_TRX_EVT)?如何由E列得到F列数据(从E类中截取表名)?
1. 字符串拼接
在E列中输入:=C3&"."&D3
2.字符串截取
首先介绍几个函数:
left函数,right函数和mid函数
left函数语法:left(text,num_chars),从左侧开始截取部分字符串
right函数语法:right(text,num_chars),从右侧开始截取部分字符串
其中:text表示要截取的字符串,num_chars表示要截取的字符数
mid函数语法:mid(text,start_num,num_chars),中间某位置开始截取部分字符串
其中:text表示要截取的字符串,start_num表示从第几位字符串开始截取,num_chars表示要截取的字符数
这里我们选取mid函数进行字符串的截取:
3.透视表
所谓透视表,其实就是统计表。
假设PDM中有一批表,包括一对一(未经过复杂加工),复杂视图,和经过复杂加工的表。现在我们要找出一对一的表,那么肯定要经过血缘分析,通过STG_VIEW来统计上游对应几张表。
这里要注意的是,不能通过STG_DATA,因为有部分表是其他团队开发的,没有入STG_DATA,而是入的STG_DCOR1这类。这个区我们是没有访问权限的,但是可以通过调度访问。
通过删选,并删除重复项,我们得到如下内容:
现在我们要统计,每个分析对象对应几张源表。选中这两列数据(包括抬头),在数据选项卡下插入数据透视表,结果如下:
分析对象托动至行区域,源表拖动至数据区域,点击分析对象,选统计。
那么,数据透视表就会统计出每个分析对象对应几张源表。处理结果如下:
我们可以对结果进行筛选,选出统计结果为1的,那么就是一对一的表了。