我想导出一个平面文件并遇到这个棘手的问题:
IN
运算符,则需要太长时间(因为我有7个案例,每个案例约有30个值)。也因为#2,我需要一个子查询。select
。我已经读过,当你拥有如此多的价值时,试图用Derived Column做这个并不是最好的想法,但我仍然想不出更好的方法。有什么建议吗?
编辑:
具体陈述与CASE WHEN dt.source_country_code IS NOT NULL THEN dt.source_country_code ELSE dt.trans_country_code END) AS Country
类似。其余查询很大,不会影响此字段。该字段的结果是ISO国家/地区代码,例如:GRC,GBR,FRA,JPN ....应该完成的转换是标准的(如果我选择在查询中执行):
case when Country in ('GRC','GBR','ESP','FRA','DEU','ROM','DNK','IMN','PRT','ITA','CZE','IRL','POL','AND','FIN','LVA','SHN','ATA','LIE','SMR','AUT','LTU','SVK','BEL','GIB','LUX','SVN','BGR','MLT','GRL','MCO','SWE','HRV','HUN','NLD','CHE','CYP','ISL','NOR','VAT','ROU','EST') then '1'
when Country in ('ALB','MDA','ARM','MNE','AZE','RUS','BLR','SRB','BIH','TJK','GEO','TUR','ISR','TKM','KAZ','UKR','XKX','UZB','MKD') then '4'
when Country in ('USA','CAN') then '5'
when Country = 'CHN' then '6'
when Country = 'JPN' then '7'
when Country in ('AUS','NZL') then '8'
else '9' end) as CountryCode
答案 0 :(得分:2)
使用您的转化创建一个简单的文本文件(CSV),如下所示:
CountryISO,ID
USA,1
ARG,2
ESP,3
CHN,4
HKG,4
创建一个缓存连接管理器来存储您的转化;对此转换文件使用平面文件连接,并在DataFlow任务中将其加载到缓存连接上。
在前一个之后的单独DataFlow中(缓存需要在之前的单独DataFlow任务中加载),使用Lookup搜索加入Oracle结果,其中Lookup具有“Full Cache”(将所有引用的值存储在内存中) )和您的“缓存连接管理器”设置。
您可以关注this post作为示例。