SQL-запрос для преобразования VARCHAR в INT

Опубликовано: 1 Сентября, 2022

Методы 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;