在 case 语句中将 ISNumeric 更改为 try_convert
Change ISNumeric to try_convert in case statement
我正在使用性能非常糟糕的旧代码,公司正在使用 SQL Server 2012。我阅读了博客,其中指出 isnumeric
性能很差,所以我正在尝试使用 try_convert
而不是 SQL Server 2012 功能。我在代码中多次看到这个语句,所以我想试一试:
Convert(float,Case Isnumeric(somecolumnvalue) when 1 then somecolumnvalue else 0.0 end
如何将此语句转换为使用 Try_convert
语句。任何人都可以帮助我以及对 isnumeric
的性能问题的任何评论
您将使用:
coalesce(try_convert(float, somecolumn_value), 0.0)
我不知道性能是否真的会更好,但代码更易于阅读并且不易出现意外问题。转换为 float
通常并不麻烦,但你确实有异常。例如,'-'
"is numeric" 但在转换为 float
.
时会产生错误
我正在使用性能非常糟糕的旧代码,公司正在使用 SQL Server 2012。我阅读了博客,其中指出 isnumeric
性能很差,所以我正在尝试使用 try_convert
而不是 SQL Server 2012 功能。我在代码中多次看到这个语句,所以我想试一试:
Convert(float,Case Isnumeric(somecolumnvalue) when 1 then somecolumnvalue else 0.0 end
如何将此语句转换为使用 Try_convert
语句。任何人都可以帮助我以及对 isnumeric
您将使用:
coalesce(try_convert(float, somecolumn_value), 0.0)
我不知道性能是否真的会更好,但代码更易于阅读并且不易出现意外问题。转换为 float
通常并不麻烦,但你确实有异常。例如,'-'
"is numeric" 但在转换为 float
.