PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Trova valori che non contengono numeri in PostgreSQL

L'esempio seguente restituisce tutte le righe che non contengono numeri in PostgreSQL.

I numeri possono essere rappresentati da parole e altri simboli, ma per questo articolo "numero" significa semplicemente "cifra numerica". Quindi stiamo trovando valori che non contengono cifre numeriche.

Esempio

Supponiamo di avere una tabella chiamata Products con i seguenti dati nel suo ProductName colonna:

SELECT ProductName 
FROM Products;

Risultato:

           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)

Questa colonna contiene dati carattere, ma alcune righe contengono numeri all'interno di tali dati carattere (anche se non sono archiviati come tipo numerico).

Possiamo utilizzare la seguente query per restituire solo quelle righe che non contengono cifre numeriche:

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

Risultato:

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

Come previsto, vengono restituite solo le righe che non contengono cifre numeriche.

In PostgreSQL, !~ è un operatore con distinzione tra maiuscole e minuscole utilizzato per restituire valori che non corrispondono all'espressione regolare specificata. Per le corrispondenze senza distinzione tra maiuscole e minuscole, usa !~* .

Puoi usare ~ per restituire tutte le righe che fanno corrisponde all'espressione regolare (e ~* per le corrispondenze senza distinzione tra maiuscole e minuscole).