Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wykryć, czy wartość zawiera co najmniej jedną liczbę w SQL Server?

Czasami może być konieczne przeszukanie tabeli bazy danych tylko pod kątem wierszy, które zawierają co najmniej jedną liczbę w danej kolumnie.

Ściśle mówiąc, liczby mogą być reprezentowane przez słowa i inne symbole, ale na potrzeby tego artykułu „liczba” oznacza „cyfrę”.

Poniżej znajduje się przykład, jak używać T-SQL do wyszukiwania wierszy zawierających co najmniej jedną liczbę w SQL Server.

Przykład

Załóżmy, że mamy tabelę o nazwie Products z następującymi danymi w swoim ProductName kolumna:

SELECT ProductName 
FROM Products;

Wynik:

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Left handed screwdriver             |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
| Right handed screwdriver            |
+-------------------------------------+

Ta kolumna oczywiście zawiera dane znakowe, ale niektóre wiersze zawierają liczby w tych danych znakowych (nawet jeśli nie są one przechowywane jako typ liczbowy).

Możemy użyć następującego zapytania, aby zwrócić tylko te wiersze, które zawierają liczby reprezentowane przez cyfry:

SELECT ProductName 
FROM Products
WHERE ProductName LIKE '%[0-9]%';

Wynik:

+-------------------------------------+
| ProductName                         |
|-------------------------------------|
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Zgodnie z oczekiwaniami zwracane są tylko te wiersze, które zawierają liczby.

Ta technika nie ogranicza się tylko do liczb. W razie potrzeby możesz zmodyfikować to zapytanie, aby zawierało inne znaki. Wszystko, co robimy, to określanie własnego wzorca dla LIKE operatora.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utworzyć wyzwalacz, aby rejestrować kod SQL, którego dotyczy tabela?

  2. Nie można zalogować się do SQL Server + SQL Server Authentication + Błąd:18456

  3. Odpowiednik LIMIT i OFFSET dla SQL Server?

  4. Jak naprawić stan oczekiwania na odzyskiwanie w bazie danych programu SQL Server?

  5. Wydajność serwera SQL TOP IO Query -1