Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как ISNUMERIC() работи в SQL Server

В 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() за обяснение и примери.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи IIF() в SQL Server

  2. Как мога да избера от списък със стойности в SQL Server

  3. Как мога да изтрия с помощта на INNER JOIN със SQL Server?

  4. T-SQL:Как да използвам параметри в динамичен SQL?

  5. DateTime2 срещу DateTime в SQL Server