Преобразовать строку в int с помощью SQL-запроса - PullRequest
135 голосов
/ 08 апреля 2009

Как преобразовать строку в целое число с помощью SQL-запроса на SQL Server 2005?

Ответы [ 4 ]

250 голосов
/ 08 апреля 2009

Вы можете использовать CAST или CONVERT :

SELECT CAST(MyVarcharCol AS INT) FROM Table

SELECT CONVERT(INT, MyVarcharCol) FROM Table
10 голосов
/ 08 апреля 2015

Также помните, что при преобразовании из числовой строки, например, '56.72' в INT, вы можете столкнуться с ошибкой SQL.

Conversion failed when converting the varchar value '56.72' to data type int.

Чтобы обойти это, просто сделайте два преобразования следующим образом:

STRING -> NUMERIC -> INT

или

SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)

При копировании данных из Таблицы A в Таблицу B преобразование неявное, поэтому вам не нужно второе преобразование (если вы хотите округлить до ближайшего INT):

INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
3 голосов
/ 27 сентября 2018

Начиная с SQL Server 2012, вы можете использовать TRY_PARSE или TRY_CONVERT .

SELECT TRY_PARSE(MyVarcharCol as int)

SELECT TRY_CONVERT(int, MyVarcharCol)
0 голосов
/ 30 ноября 2018

попробуйте этот, он работал для меня в Афине приведение (MyVarcharCol как целое число)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...