sql >> Databasteknik >  >> RDS >> PostgreSQL

Hitta värden som inte innehåller siffror i PostgreSQL

Följande exempel returnerar alla rader som inte innehåller några nummer i PostgreSQL.

Siffror kan representeras av ord och andra symboler, men för den här artikeln betyder "nummer" helt enkelt "numerisk siffra". Så vi hittar värden som inte innehåller några numeriska siffror.

Exempel

Anta att vi har en tabell som heter Products med följande data i dess ProductName kolumn:

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)

Den här kolumnen innehåller teckendata, men vissa rader innehåller siffror inom dessa teckendata (även om de inte lagras som en numerisk typ).

Vi kan använda följande fråga för att returnera bara de rader som inte innehåller några numeriska siffror:

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 förväntat returneras endast de rader som inte innehåller några siffror.

I PostgreSQL, !~ är en skiftlägeskänslig operator som används för att returnera värden som inte matchar det givna reguljära uttrycket. För skiftlägesokänsliga matchningar, använd !~* .

Du kan använda ~ för att returnera alla rader som gör matcha det reguljära uttrycket (och ~* för skiftlägesokänsliga matchningar).


  1. viloläge med c3p0:createClob() är ännu inte implementerat

  2. SQL-syntaxterm för 'WHERE (col1, col2) <(val1, val2)'

  3. Hur LIKE-operatören fungerar i MySQL

  4. SEC_CASE_SENSTIVE_LOGON i 12c