Oracle
 sql >> Database >  >> RDS >> Oracle

2 modi per restituire righe che non contengono valori numerici in Oracle

Gli esempi seguenti restituiscono solo le righe che non contengono cifre numeriche in una determinata colonna in Oracle Database.

Dati di esempio

Supponiamo di avere una tabella con i seguenti dati:

SELECT ProductName 
FROM Products;

Risultato:

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

La tabella ProductName utilizza un varchar2 tipo di dati, e quindi contiene dati sui caratteri. Ma può contenere anche cifre numeriche.

Esempio 1 – Regex

Ecco una query che possiamo utilizzare per restituire tutte le righe che non contengono cifre numeriche:

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

Risultato:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Esempio 2 – POSIX

In Oracle Database, il REGEXP_LIKE condizione è conforme allo standard delle espressioni regolari POSIX. Pertanto, possiamo ottenere lo stesso risultato con la seguente query:

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

Risultato:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water