Tsql - Cast string to integer or return default value
To convert a string to an integer, use TRY_CAST
which attempts the cast and provides NULL
if unsuccessful. To substitute any NULL
s with a specific value, use ISNULL
:
Replace columnName
, defaultValue
, and tableName
with your details. This one-liner ensures any unconvertible strings default to your specific value. Quick, clean and efficient.
Improved conversion techniques
SQL Server 2012+: TRY_CONVERT
SQL Server 2012 onwards? Use TRY_CONVERT
to customize the data type check. If conversion cannot occur, you are given a NULL
to swap with a default value.
SQL Server 2005-2008 R2: User-Defined Function
For earlier versions not supporting TRY_CAST
, consider a User-Defined Function (UDF), which safely manages special characters and overflows.
Bulletproof conversion: TRY-CATCH
Embed a TRY-CATCH
block within stored procedures for a watertight solution, managing conversion exceptions.
Dealing with fractions and unwanted characters
Dealing with fractions or separators? Use functions like PARSENAME
.
To remove extraneous characters, use string manipulation:
Navigating ISNUMERIC's quirks
Counteract ISNUMERIC
false positives by adjusting your logic to avoid common traps:
Preventing overflows
Stay alert for integral range overflows. Verify that conversion result lies within the expected integer range (-2147483648 to 2147483647):
Checking your cogs and wheels
Ensure that your conversion logic can withstand all expected inputs. Run a set of controlled tests. It reinforces accuracy and reliability:
Was this article helpful?