sql >> Databáze >  >> RDS >> PostgreSQL

Najděte v PostgreSQL hodnoty, které neobsahují čísla

Následující příklad vrátí všechny řádky, které v PostgreSQL neobsahují žádná čísla.

Čísla mohou být reprezentována slovy a jinými symboly, ale pro tento článek „číslo“ znamená jednoduše „číslice“. Takže nacházíme hodnoty, které neobsahují žádné číselné číslice.

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é neobsahují žádné číselné číslice:

SELECT ProductName 
FROM Products
WHERE ProductName !~ '[0-9]+';

Výsledek:

       productname        
--------------------------
 Left handed screwdriver
 Right handed screwdriver
 Long Weight (blue)
 Long Weight (green)
 Straw Dog Box
(5 rows)

Podle očekávání jsou vráceny pouze ty řádky, které neobsahují žádné číselné číslice.

V PostgreSQL !~ je operátor rozlišující velká a malá písmena, který se používá k vrácení hodnot, které neodpovídají danému regulárnímu výrazu. Pro shody bez rozlišení velkých a malých písmen použijte !~* .

Můžete použít ~ vrátit všechny řádky, které dělají odpovídat regulárnímu výrazu (a ~* pro shody bez rozlišení velkých a malých písmen).


  1. Django:Skupina dotazů podle měsíce

  2. Rails:Postgres oprávnění k vytvoření databáze na rake db:create:all odepřeno

  3. Jak vrátit prvky z pole JSON v MariaDB

  4. Filtrování protokolů výstrah v EM13c