我需要在SSIS中编写一个case语句,我必须根据每行中可用的值来填充列名。
我从这里的一些帖子中得到了一些想法,但我不知道如何填充列名作为结果,除非没有其他办法,否则我不想要硬编码名称。
Assetname |SP Rating|InHouse |Moody |RatingCounter
-----------------------------------------------
ABC | | A+ | AB |
------------------------------------------------
XYZ | B+ | A+ | AA+ |
------------------------------------------------
PQR | BBB | | B+ |
------------------------------------------------
MNC | | | |
-------------------------------------------------
IIR | | AAA+ | |
-------------------------------------------------
我有两个要求第一部分我做了,但我不知道如何做下一部分。 如果它是SQL,我会进一步发展,但我在SSIS中并不出色。
使用每个资产可用的评级数填充评级计数器 解决方案: - 我已在Derived列中编写此逻辑以计算非null值并添加它们
!ISNULL([Moody]) ? 1 : 0) + (!ISNULL([SP Rating]) ? 1 : 0) +(!ISNULL([InHouse]) ? 1 : 0)
还有其他更好的方法吗?
这有点复杂。我需要添加另一个派生列'评级来源' 并根据评级计数器填充它。
案例评级COunter = 0:然后空白
案例评级COunter = 1:然后是提供者的列标题 (例如,对于最后一行IIR评级来源将是' In House')
案例评级计数器= 2,如果有2评级可用则评级较差 (例如,资产ABC评级来源的第一行将是穆迪(因为AB比A +差)或者资产PQR为第3行,评级来源将填充“SP评级”,因为BBB更差,然后是B +
案例评分计数器= 3 当3等级可用时,然后取中等评级,例如第二行XYZ AA +最好,A +是中等,B +更差我们必须选择A +的列标题,这是' InHouse'
< / LI>我不确定如何在SSIS中执行此操作。任何指针都会感激不尽