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.