Poniższy przykład zwraca wszystkie wiersze, które zawierają co najmniej jedną cyfrę w PostgreSQL.
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 Right handed screwdriver Long Weight (blue) Long Weight (green) Straw Dog Box Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Ta kolumna zawiera dane znakowe, ale niektóre wiersze zawierają liczby w ramach 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 ~ '[0-9]+';
Wynik:
productname --------------------------------- Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Zgodnie z oczekiwaniami zwracane są tylko te wiersze, które zawierają liczby.
W PostgreSQL ~
jest operatorem rozróżniającym wielkość liter dla dopasowania podanego wyrażenia regularnego. W przypadku dopasowań bez rozróżniania wielkości liter użyj ~*
.
Możesz użyć !~
aby zwrócić wszystkie wiersze, które nie pasują do wyrażenia regularnego (i !~*
dla dopasowań bez rozróżniania wielkości liter).