В SQL Server можете да използвате ISNUMERIC()
функция, за да разберете дали изразът е числов или не.
Функцията връща 1, ако изразът е числов, и 0, ако не е.
За да използвате тази функция, просто предайте стойността/израза на функцията, докато я извиквате.
Пример 1 – Числов израз
Ето пример, за да демонстрирате какво се случва, когато предадете числов израз на тази функция.
SELECT ISNUMERIC(250) AS Result;
Резултат:
+----------+ | Result | |----------| | 1 | +----------+
В този случай стойността е числова и резултатът е 1.
Получаваме същия резултат, дори ако стойността е предоставена като низ (ограден в единични кавички).
SELECT ISNUMERIC('250') AS Result;
Резултат:
+----------+ | Result | |----------| | 1 | +----------+
Пример 2 – Нечислов израз
Ето какво се случва, когато стойността е не числови.
SELECT ISNUMERIC('Hey!') AS Result;
Резултат:
+----------+ | Result | |----------| | 0 | +----------+
Пример 3 – Пример за база данни
Ето пример за използване на ISNUMERIC()
в WHERE
клауза при запитване към база данни:
USE WideWorldImportersDW; SELECT COUNT(*) AS [Count] FROM Dimension.Customer WHERE ISNUMERIC([Postal Code]) = 1;
Резултат:
+---------+ | Count | |---------| | 402 | +---------+
Това връща броя на всички редове с цифров пощенски код.
Неочаквани резултати? Когато нечисловото е числово
Някои знаци се третират като числови, дори когато не са число. Това е нещо, което трябва да сте наясно, когато използвате тази функция, в противен случай може да получите резултати, които не очаквате.
Вижте нечислови знаци, които връщат положително, когато използвате ISNUMERIC()
за обяснение и примери.