如何在Azure Synapse表达式中转换perl脚本解包命令?

问题描述 投票:0回答:1

`代码似乎正在检查是否有任何二进制字符串将转换为整数?

  ``$changeNum = substr($rec, 280, 4); # 281
if(!($changeNum =~ /^[0-9]+$/))
{
    $changeNum = unpack("i*", $changeNum);
}`

`任何人都可以为此建议 adf 表达式吗?

`

   `iif(regexMatch(substring(Column_1,281,4),'^[0-9]+$'),toInteger(substring(Column_1,281,4)),0)`
azure-data-factory azure-synapse azure-synapse-analytics azure-synapse-pipeline ararat-synapse
1个回答
0
投票

您可以在派生列转换中使用以下表达式来实现您的要求。

iif(regexMatch(substring(binay_col,4,4),'^[0-9]+$'),reduce(map([4,3,2,1],multiply(power(2,#item-1),toInteger(split(reverse(substring(binay_col,4,4)),'')[#item]))),0,#acc + toInteger(#item),#result),toInteger('0'))

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.