Oracle
 sql >> Datenbank >  >> RDS >> Oracle

2 Möglichkeiten, Zeilen zurückzugeben, die keine numerischen Werte in Oracle enthalten

Die folgenden Beispiele geben nur die Zeilen zurück, die keine numerischen Ziffern in einer bestimmten Spalte in Oracle Database enthalten.

Beispieldaten

Angenommen, wir haben eine Tabelle mit den folgenden Daten:

SELECT ProductName 
FROM Products;

Ergebnis:

Left Handed Screwdriver
Right Handed Screwdriver
Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
Beer Water
10 Songs

Die ProductName-Tabelle verwendet einen varchar2 Datentyp und enthält daher Zeichendaten. Es kann aber auch Ziffern enthalten.

Beispiel 1 – Regex

Hier ist eine Abfrage, die wir verwenden können, um alle Zeilen zurückzugeben, die keine numerischen Ziffern enthalten:

SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[0-9]+');

Ergebnis:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Beispiel 2 – POSIX

In der Oracle-Datenbank der REGEXP_LIKE Bedingung entspricht dem POSIX-Standard für reguläre Ausdrücke. Daher können wir dasselbe Ergebnis mit der folgenden Abfrage erhalten:

SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[[:digit:]]');

Ergebnis:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water