В этом руководстве вы узнаете, как использовать функцию 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() для проверки того, является ли выражение допустимым числовым типом.