本文介绍了SSI派生前导零的列填充的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望能够在以下方案中添加前导零-
如果[Account ID]<;17{对于应用程序=RCC,SEC,Hogan CIS}
,则[Account ID]前需要前导零我在[Account ID]if([Account ID]+[Account Number])<;17{for Application=CLN}
前需要前导零我在[Client Key]if([Client Key]+[Client ID])<;17{for Application=ITF}
前需要前导零
我在我的派生列中定义了以下表达式-
LTRIM(RTRIM(APPLICATION == "RCC" || APPLICATION == "SEC" ? APPLICATION + "|" + [ACCOUNT ID] : APPLICATION == "HOGAN CIS" ? (HOGAN_Hogan_Alpha_Product_Code == "DDA" ? "DDA" : "TDA") + "|" + [ACCOUNT ID] : APPLICATION == "ITF" ? APPLICATION + "|" + [CLIENT KEY] + [CLIENT ID] : APPLICATION == "CLN" ? APPLICATION + "|" + [ACCOUNT ID] + [ACCOUNT NUMBER] : APPLICATION + "|" + [ACCOUNT NUMBER]))
推荐答案
填充字符串
我在处理添加前导字符时使用的一般策略是始终添加它们,然后取最右边的N个字符。我发现它大大简化了你的逻辑。
RIGHT(REPLICATE('0', 17) + [MyColumn], 17)
这将生成17个零,将其添加到我的列中,然后切掉最后17个字符。如果MyColumn已经是17个字符,则不会完成任何有效的工作。如果为空,则现在的值为17个零。
选择
在您的例子中,我首先尝试添加一个派生列,以确定APPLICATION
属于哪个逻辑块。与您现有的三元表达式非常相似。(APPLICATION == "CLN") ? 10 :
(APPLICATION == "ITF") ? 20 :
(APPLICATION == "RCC" | APPLICATION == "SEC" ....) ? 30 : 40
在派生的列中,您将能够验证逻辑是否按预期工作,从而使填充更容易。
这篇关于SSI派生前导零的列填充的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!