Как преобразовать строку в целое число с помощью SQL-запроса на SQL Server 2005?
sql
sql-server-2005
Рахул Вьяс
источник
источник
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
может привести к некоторым извращенным результатам. Он вернет TRUE для строки «-.», Что все равно вызовет ошибку при попытке привести его к числу.Также имейте в виду, что при преобразовании из числовой строки, то есть
'56.72'
в INT, вы можете столкнуться с ошибкой SQL.Чтобы обойти это, просто сделайте два преобразования следующим образом:
STRING -> NUMERIC -> INT
или
При копировании данных из TableA в TableB преобразование неявное, поэтому вам не нужно второе преобразование (если вы хотите округлить до ближайшего INT):
источник
Начиная с SQL Server 2012, вы можете использовать TRY_PARSE или TRY_CONVERT .
источник
Попробуйте это, это сработало для меня в Афине:
источник