问题描述
我正在尝试在我的加载脚本中联接两个表 hlo2aLookup 和 ODP_StudySite 。这是加载脚本:
hlo2aNewCol:
LOAD [~SiteKey]
RESIDENT hlo2aLookup;
left Join
LOAD [~SiteKey],[~SiteKey] as [Key2],if(exists([~SiteKey],[~SiteKey]),'y','n') as [Key2Exits],if(isnull([~SiteKey]),'n') as [Key2isNull]
Resident ODP_StudySite;
matchkey是〜Sitekey ,并且在表上没有匹配项的地方,我希望它显示“ No match”,而不是空值。我已经测试了EXISTS和ISNULL(如下面的示例所示,在 Key2Exists 和 Key2IsNull 中)-但是它不能正常工作。这就是我现在在表格中看到的:
有什么想法吗?
最美好的祝愿
戴夫
解决方法
不要认为您可以在连接表之前/期间“标记”记录。 您可以通过几个步骤来实现:
- 将表加入临时表(在
hlo2aNewCol_Temp
下面的脚本中) - 使用临时表的结果,并在此处编写逻辑。此表将是“最终”表
- 删除临时表
hlo2aNewCol_Temp:
LOAD
[~SiteKey]
RESIDENT hlo2aLookup;
left Join
LOAD
[~SiteKey],[~SiteKey] as [Key2]
Resident ODP_StudySite;
hlo2aNewCol:
Load
[~SiteKey],Key2,// this is probably not needed. just for reference.
if( isNull(Key2),'No Match',Key2 ) as KeyStatus
Resident hlo2aNewCol_Temp;
Drop Table hlo2aNewCol_Temp;