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

Find værdier, der ikke indeholder tal, i PostgreSQL

Følgende eksempel returnerer alle rækker, der ikke indeholder nogen tal i PostgreSQL.

Tal kan repræsenteres af ord og andre symboler, men for denne artikel betyder "tal" blot "numerisk ciffer". Så vi finder værdier, der ikke indeholder nogen numeriske cifre.

Eksempel

Antag, at vi har en tabel kaldet Products med følgende data i dens ProductName kolonne:

SELECT ProductName 
FROM Products;

Resultat:

           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)

Denne kolonne indeholder tegndata, men nogle rækker indeholder tal i disse tegndata (selvom de ikke er gemt som en numerisk type).

Vi kan bruge følgende forespørgsel til kun at returnere de rækker, der ikke indeholder nogen numeriske cifre:

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

Resultat:

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

Som forventet returneres kun de rækker, der ikke indeholder nogen numeriske cifre.

I PostgreSQL, !~ er en operator, der skelner mellem store og små bogstaver, og som bruges til at returnere værdier, der ikke matcher det givne regulære udtryk. Brug !~*, hvis der ikke skelnes mellem store og små bogstaver .

Du kan bruge ~ for at returnere alle rækker, der gør matche det regulære udtryk (og ~* for store og små bogstaver).


  1. Forskellige måder at bruge SQL CONVERT date-funktionen på

  2. Hvordan nulstiller man postgres' primære nøglesekvens, når den falder ud af synkronisering?

  3. Oracle:Konverter valutabeløb i ord ved hjælp af PL/SQL

  4. Installation af Oracle 9i Developer Suite 2.0 på Windows