Если вы используете SQL Server 2012 или более позднюю версию, вы можете использовать функцию TRY_CONVERT
, например,
WITH yourTable AS (
SELECT 123 AS intVal UNION ALL
SELECT '123' UNION ALL
SELECT NULL
)
SELECT
intVal,
CASE WHEN TRY_CONVERT(int, intVal) IS NOT NULL THEN 'yes' ELSE 'no' END AS can_parse
FROM yourTable;
Демо
Функция TRY_CONVERT
вернет NULL
в этом случае, если она не может преобразовать входные данные в целое число. Таким образом, это безопасный способ проверки ваших данных перед попыткой формального приведения или преобразования.