Azure data factory ADF数据流转换为整数时如何处理空字符串

Azure data factory ADF数据流转换为整数时如何处理空字符串,azure-data-factory,Azure Data Factory,使用ADF数据流将数据从一个sql表复制到另一个sql表时,如何处理字符串到整数的转换? 我有一个字段是空的,使用toInteger()函数会导致错误。 如果值为null,如何告诉表达式不要转换 我看到有一个if表达式,但我不确定如何使其正确工作。我尝试使用iif,但复制仍然失败,因为toInteger()函数无法将空字符串转换为整数 iif(DivisionNumber=='',0,toInteger(DivisionNumber))空字符串是',与'不同。您是否尝试过在引号之间不留空格 希望

使用ADF数据流将数据从一个sql表复制到另一个sql表时,如何处理字符串到整数的转换? 我有一个字段是空的,使用toInteger()函数会导致错误。 如果值为null,如何告诉表达式不要转换

我看到有一个if表达式,但我不确定如何使其正确工作。我尝试使用iif,但复制仍然失败,因为toInteger()函数无法将空字符串转换为整数

iif(DivisionNumber=='',0,toInteger(DivisionNumber))

空字符串是
'
,与
'
不同。您是否尝试过在引号之间不留空格

希望有帮助。

空字符串是
'
,与
'
不同。您是否尝试过在引号之间不留空格


希望能有所帮助。

似乎我们这里可能有很多情况,在这种情况下使用
case()
函数可能是更好的选择,请尝试以下方法:

case(DivisionNumber == ' ',0,DivisionNumber == '',0,isNull(DivisionNumber),0,toInteger(DivisionNumber))
当包含以下内容时,该值将被0替换:
'
'
null
,除此之外,将使用
toInteger()


如果有任何其他案例需要转换,您也可以将其添加到此脚本中。

似乎我们这里可能有很多情况,在这种情况下使用
case()
函数可能是更好的选择,请尝试如下操作:

case(DivisionNumber == ' ',0,DivisionNumber == '',0,isNull(DivisionNumber),0,toInteger(DivisionNumber))
当包含以下内容时,该值将被0替换:
'
'
null
,除此之外,将使用
toInteger()


如果有任何其他案例需要转换,您也可以将其添加到此脚本中。

我确实尝试了两种方法,但得到了相同的消息“Column'DivisionNumber'包含无效值“””您尝试了这两种情况吗?也许你得到了
'
'
'
'
。。。在这种情况下,您应该尝试修剪()您输入的内容,例如:
iif(TRIM(DivisionNumber)='',0,toInteger(DivisionNumber))
感谢您提供的解决方案,在解决了我自己在数据流方面的错误后,此解决方案同样有效,我将您的解决方案标记为我问题的答案,因为我不必按照AM07300222建议考虑所有情况。我确实尝试了两种方法,但得到了相同的消息“列'DivisionNumber'包含无效值”“”。您尝试过这两种情况吗?也许你得到了
'
'
'
'
。。。在这种情况下,您应该尝试修剪()您输入的内容,例如:
iif(TRIM(DivisionNumber)='',0,toInteger(DivisionNumber))
感谢您提供的解决方案,在解决了我自己在数据流方面的错误后,此解决方案同样有效,我将您的解决方案标记为我的问题的答案,因为我不必按照AM07300222建议考虑所有情况。我也尝试过,但似乎没有帮助,所以现在我想也许我应该花点时间弄清楚,为什么当json中的值是空字符串时,从json到sql表的副本没有插入null。所以这是愚蠢的,一旦我的数据流正常工作,这个解决方案也能正常工作,所以感谢@AM07300222我也尝试了这个方法,但似乎没有帮助,所以现在我想也许我应该花点时间弄清楚为什么当json中的值是空字符串时,从json到sql表的副本没有插入null。所以这是愚蠢的,一旦我的数据流正常工作,这个解决方案也起作用了,谢谢@AM07300222