sql >> Database >  >> RDS >> Oracle

Detecteren of een waarde ten minste één numeriek cijfer bevat in Oracle

Het volgende voorbeeld retourneert alle rijen die ten minste één numeriek cijfer in Oracle Database bevatten.

Voorbeeldgegevens

Stel dat we een tabel hebben met de naam Products met de volgende gegevens in zijn ProductName kolom:

SELECT ProductName 
FROM Products;

Resultaat:

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

Voorbeeld zoekopdracht

We kunnen de volgende query gebruiken om alleen die rijen te retourneren die getallen bevatten:

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

Resultaat:

Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
10 Songs

Alleen de rijen die getallen bevatten, worden geretourneerd. Met "cijfers" bedoel ik numerieke cijfers. Getallen kunnen ook worden weergegeven door woorden of symbolen, maar dit voorbeeld detecteert alleen numerieke cijfers.

In Oracle, de REGEXP_LIKE voorwaarde voldoet aan de POSIX-standaard voor reguliere expressies. Daarom kunnen we hetzelfde resultaat krijgen met het volgende patroon:

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

Resultaat:

Bottomless Coffee Cup (4 pack)
Urban Dictionary Version 2.3
10 Songs

  1. MySQL Python installeren op Mac OS X

  2. Heeft de SQL JOIN-volgorde invloed op de prestaties?

  3. Spotlight Cloud gebruiken om blokkering van SQL Server op te lossen

  4. Varchar(MAX) versus TEXT gebruiken op SQL Server