Функция ISNUMERIC сервера SQL

В этом руководстве вы узнаете, как использовать функцию ISNUMERIC() SQL Server для проверки того, является ли значение допустимым числовым типом.

Введение в функцию ISNUMERIC() SQL Server

Функция ISNUMERIC() принимает выражение и возвращает 1, если выражение имеет допустимый числовой тип; в противном случае возвращается 0.

Ниже показан синтаксис функции ISNUMERIC():

ISNUMERIC( expression )  

В этом синтаксисе выражением является любое допустимое выражение, подлежащее оценке.

Обратите внимание, что допустимым числовым типом является один из следующих:

  • Точные числа: BIGINT, INT, SMALLINT, TINYINT и BIT
  • Фиксированная точность: ДЕСЯТИЧНАЯ, ЧИСЛОВАЯ
  • Приблизительно: FLOAT, REAL
  • Денежные ценности: ДЕНЬГИ, МАЛЕНЬКИЕ ДЕНЬГИ

ISNUMERIC() на самом деле проверяет, можно ли преобразовать значение в числовой тип данных, и возвращает правильный ответ. Однако он не сообщает вам, какой тип данных и как правильно обрабатывать переполнение.

Вот почему функции TRY_CAST(), TRY_PARSE() и TRY_CONVERT() были введены начиная с SQL Server 2012.

Примеры ISNUMERIC() для SQL Server

Давайте рассмотрим несколько примеров объединения функции ISNUMERIC().

В этом примере функция ISNUMERIC() используется для проверки возможности преобразования строки «$10» в число:

SELECT 
    ISNUMERIC('$10') result;

Вот что получилось:

result
-----------
1
(1 row affected)

В следующем примере проверяется, является ли строка «-2.23E-308» числом:

SELECT 
    ISNUMERIC('-2.23E-308') result;

Вывод:

result
-----------
1
(1 row affected)        

Следующий пример возвращает 0, указывая на то, что строка «+ABC» не является числом:

SELECT 
    ISNUMERIC('+ABC') result;

Вот что получилось:

result
-----------
0
(1 row affected)        

В этом руководстве вы узнали, как использовать функцию SQL Server ISNUMERIC() для проверки того, является ли выражение допустимым числовым типом.

Мирослав С.

Автор статей, ИБ-специалист