sql >> Databasteknik >  >> RDS >> Oracle

Upptäck om ett värde innehåller minst en numerisk siffra i Oracle

Följande exempel returnerar alla rader som innehåller minst en numerisk siffra i Oracle Database.

Exempeldata

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

SELECT ProductName 
FROM Products;

Resultat:

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

Exempelfråga

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

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

Resultat:

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

Endast de rader som innehåller siffror returneras. Med "siffror" menar jag numeriska siffror. Siffror kan också representeras av ord eller symboler, men det här exemplet identifierar bara siffror.

I Oracle, REGEXP_LIKE villkoret överensstämmer med POSIX standarduttrycksstandard. Därför kan vi få samma resultat med följande mönster:

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

Resultat:

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

  1. Hur fungerar GROUP BY?

  2. Är COUNT(rovid) snabbare än COUNT(*)?

  3. Dynamisk datamaskering i SQL Server för nybörjare

  4. Finns det en .NET motsvarande SQL Servers newsequentialid()