SQL-запрос для преобразования VARCHAR в INT
Методы SQL Server CAST() и CONVERT() можно использовать для преобразования VARCHAR в INT. Мы также рассмотрим более эффективный и безопасный подход к преобразованию значений из одного типа данных в другой.
В РОЛЯХ()
Функция CAST() в SQL Server используется для приведения или преобразования значения или выражения из одного типа данных в другой.
Синтаксис:
CAST ( expression AS target_type [ ( length ) ] )
Параметры:
- выражение — любое значение любого типа, которое будет преобразовано.
- target_type — целевой тип данных, в который будет преобразовано значение. например INT, BIT, SQL_VARIANT и т. д.
- длина — необязательный параметр, указывающий длину target_type, длина по умолчанию — 30.
Давайте возьмем пример, где функция CAST() используется для преобразования VARCHAR в INT.
Запрос:
SELECT CAST("1234" AS INT) AS Result;
Выход:
Конвертировать()
В SQL Server функция CONVERT() используется для преобразования значения одного типа в другой. Преобразование чего-либо включает изменение его формы или значения.
Синтаксис:
SELECT CONVERT ( target_type ( length ), expression )
Параметры :
- target_type — тип данных, в который будет преобразовано выражение, например: INT, BIT, SQL_VARIANT и т. д.
- длина — обеспечивает длину target_type. Длина не обязательна. Длина по умолчанию установлена на 30.
- выражение — выражение — это все, что будет преобразовано.
В приведенном ниже примере функция CONVERT() используется для преобразования VARCHAR в INT.
Запрос:
SELECT CONVERT(INT,"5678") AS Result;
Теперь давайте обсудим более эффективный подход к преобразованию значений из одного типа данных в другой с помощью функций SQL Server TRY_CAST() и TRY_CONVERT():
TRY_CAST()
Функция TRY_CAST() пытается привести входное значение к значению данного типа данных. Если приведение успешно, оно возвращает значение в предоставленных данных; в противном случае он возвращает NULL. Однако если вы запросите недопустимое преобразование, метод TRY_CAST() вернет ошибку.
Синтаксис:
TRY_CAST ( expression AS data_type [ ( length ) ] )
Используемые параметры:
- data_type: допустимый тип данных, к которому функция будет приводить выражение.
- выражение: значение для приведения.
Запрос:
SELECT TRY_CAST("1234" as INT) as Result;
Запрос:
SELECT TRY_CAST("1234abc" as INT) as Result;
TRY_CONVERT()
Метод TRY_CONVERT() пытается преобразовать переданное ему значение в указанный тип данных. Если приведение успешно, оно возвращает значение как заданные данные; в противном случае он возвращает NULL. Если вы запросите преобразование, которое явно запрещено, метод TRY CONVERT() вернет ошибку.
Синтаксис:
TRY_CONVERT ( data_type[(length)], expression [,style])
Используемые параметры:
- data_type: допустимый тип данных, к которому функция будет приводить выражение.
- выражение: значение для приведения.
- style: предоставленное целое число, указывающее, как функция будет преобразовывать выражение.
Запрос:
SELECT TRY_CONVERT( INT ,"5678") as Result;
Запрос:
SELECT TRY_CONVERT( INT ,"56abc") as Result;