我需要编写一个UDF,它会尝试将varchar转换为bigint,如果失败则返回bigint或0。问题是 - 当字符串不是有效数字时,我找不到静音转换错误的方法。 TRY CATCH在函数内部不起作用,我不知道还能做什么。
答案 0 :(得分:2)
试试这个:
Create Function dbo.Convert2BigInt(@Data VarChar(100))
Returns BigInt
As
Begin
Return(Case When IsNumeric(@Data + '.0e0') = 1
Then Convert(BigInt, @Data)
Else Convert(BigInt, 0)
End)
End