Jeśli masz kolumnę w tabeli bazy danych SQL Server, która zawiera dane znakowe, ale niektóre wiersze zawierają również liczby w tych danych, możesz użyć poniższej techniki, aby zwrócić tylko te wiersze, które nie zawierają liczb.
Liczby mogą być reprezentowane przez słowa i inne symbole, ale na potrzeby tego artykułu „liczba” oznacza „cyfrę”. Więc znajdujemy wartości, które nie zawierają żadnych cyfr.
Przykład
Załóżmy, że mamy kolumnę z następującymi danymi:
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 zawiera dane znakowe, ale niektóre wiersze zawierają liczby w ramach tych danych znakowych.
Możemy użyć następującego zapytania, aby zwrócić tylko te wiersze, które nie zawierać cyfry:
SELECT ProductName
FROM Products
WHERE ProductName NOT LIKE '%[0-9]%';
Wynik:
+--------------------------+ | ProductName | |--------------------------| | Left handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | | Right handed screwdriver | +--------------------------+
Zgodnie z oczekiwaniami zwracane są tylko te wiersze, które nie zawierają liczb.
Możemy go łatwo odwrócić i zmienić NOT LIKE
to LIKE
aby zwrócić tylko te wiersze, które robią zawierają liczby.