Následující příklad vrátí všechny řádky, které obsahují alespoň jednu číselnou číslici v PostgreSQL.
Příklad
Předpokládejme, že máme tabulku nazvanou Products
s následujícími údaji ve svém ProductName
sloupec:
SELECT ProductName
FROM Products;
Výsledek:
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)
Tento sloupec obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech (i když nejsou uloženy jako číselný typ).
Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které obsahují čísla reprezentovaná numerickými číslicemi:
SELECT ProductName
FROM Products
WHERE ProductName ~ '[0-9]+';
Výsledek:
productname --------------------------------- Bottomless Coffee Mugs (4 Pack) Smash 2000 Sledge Hammer Chainsaw (3 spare fingers)
Podle očekávání jsou vráceny pouze ty řádky, které obsahují čísla.
V PostgreSQL ~
je operátor rozlišující velká a malá písmena pro shodu daného regulárního výrazu. Pro shody bez rozlišení malých a velkých písmen použijte ~*
.
Můžete použít !~
vrátit všechny řádky, které neodpovídají regulárnímu výrazu (a !~*
pro shody bez rozlišení velkých a malých písmen).