PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Finden Sie Werte, die keine Zahlen in PostgreSQL enthalten

Das folgende Beispiel gibt alle Zeilen zurück, die in PostgreSQL keine Zahlen enthalten.

Zahlen können durch Wörter und andere Symbole dargestellt werden, aber für diesen Artikel bedeutet „Zahl“ einfach „Zahl“. Wir finden also Werte, die keine Ziffern enthalten.

Beispiel

Angenommen, wir haben eine Tabelle namens Products mit den folgenden Daten in seinem ProductName Spalte:

SELECT ProductName 
FROM Products;

Ergebnis:

           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)

Diese Spalte enthält Zeichendaten, aber einige Zeilen enthalten Zahlen innerhalb dieser Zeichendaten (obwohl sie nicht als numerischer Typ gespeichert sind).

Wir können die folgende Abfrage verwenden, um nur die Zeilen zurückzugeben, die keine numerischen Ziffern enthalten:

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

Ergebnis:

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

Wie erwartet werden nur die Zeilen zurückgegeben, die keine Ziffern enthalten.

In PostgreSQL !~ ist ein Operator, bei dem zwischen Groß- und Kleinschreibung unterschieden wird und der zum Zurückgeben von Werten verwendet wird, die nicht mit dem angegebenen regulären Ausdruck übereinstimmen. Verwenden Sie für Übereinstimmungen ohne Berücksichtigung der Groß-/Kleinschreibung !~* .

Sie können ~ verwenden um alle Zeilen zurückzugeben, die tun Übereinstimmung mit dem regulären Ausdruck (und ~* für Übereinstimmungen ohne Berücksichtigung der Groß-/Kleinschreibung).