我有一个整数字段要来,我想从字段中提取第一个数字,我该怎么做?我不能强制转换字段,因为数据来自数据集,有办法从IBM datastage的transformer阶段提取第一个数字吗?
示例:
输入:ABC = 1234
输出:1
有人能帮我做同样的事吗?
谢谢!
使用转换器,将阶段变量定义为varchar,并使用此公式获取子字符串
ABC[1,1]
或者,您也可以使用DecimalToString 转换您的数值
您可以在表达式的上下文中转换为字符串,如果结果需要是整数,则可以再次转换。AsInteger(左(ln_jn_ENCNTR_DTL.CCH,1(此解决方案使用了从整数到字符串的隐式转换。它假定CCH的值始终是一个整数。
我想说的是,如果ABC的类型为int,则可以定义长度为1的char类型的阶段变量。那么您需要先将Number转换为string。并使用Left函数提取第一个字符。左(十进制到字符串(ABC(,1(。
如果您将ABC作为字符串,则可以直接应用left函数。
您可以首先定义varchar类型的阶段变量(名称如SV((将输入整数列转换为varchar(:阶段变量定义
现在将输入整数列分配给阶段变量SV,并将输出整数列派生为AsInteger(SV[1,1](:列定义
即输入整数=>(类型转换为varchar(阶段变量=>子串[1,1]和使用AsInteger的子串到Integer的转换。
DecimalToString是一个隐式转换,所以您只需要Left((函数。Left(MyString,1)