sql >> Databáze >  >> RDS >> Oracle

2 způsoby, jak vrátit řádky, které neobsahují číselné hodnoty v Oracle

Následující příklady vrátí pouze ty řádky, které neobsahují žádné číselné číslice v daném sloupci v databázi Oracle.

Ukázková data

Předpokládejme, že máme tabulku s následujícími údaji:

SELECT ProductName 
FROM Products;

Výsledek:

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

Tabulka ProductName používá varchar2 datový typ, a tak obsahuje znaková data. Může však obsahovat i číslice.

Příklad 1 – Regex

Zde je dotaz, který můžeme použít k vrácení všech řádků, které neobsahují číslice:

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

Výsledek:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Příklad 2 – POSIX

V databázi Oracle REGEXP_LIKE podmínka odpovídá standardu regulárních výrazů POSIX. Proto můžeme získat stejný výsledek s následujícím dotazem:

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

Výsledek:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

  1. Vyhledávání databázových objektů a dat tabulek na serveru SQL

  2. Jak připravit výpis pro aktualizační dotaz?

  3. Poddotazy s EXISTS vs IN - MySQL

  4. Oracle SQL Query pro výpis všech schémat v DB