Oracle
 sql >> Baza danych >  >> RDS >> Oracle

2 sposoby zwracania wierszy, które nie zawierają wartości liczbowych w Oracle

Poniższe przykłady zwracają tylko te wiersze, które nie zawierają żadnych cyfr w danej kolumnie w Oracle Database.

Przykładowe dane

Załóżmy, że mamy tabelę z następującymi danymi:

SELECT ProductName 
FROM Products;

Wynik:

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

Tabela ProductName używa varchar2 typ danych, a więc zawiera dane znakowe. Ale może również zawierać cyfry.

Przykład 1 – Wyrażenie regularne

Oto zapytanie, którego możemy użyć do zwrócenia wszystkich wierszy, które nie zawierają cyfr:

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

Wynik:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Przykład 2 – POSIX

W bazie danych Oracle REGEXP_LIKE warunek jest zgodny ze standardem wyrażeń regularnych POSIX. Dlatego możemy uzyskać ten sam wynik za pomocą następującego zapytania:

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

Wynik:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powielanie rekordów w celu wypełnienia luki między datami

  2. Parsowanie nazw tabel i kolumn z SQL/HQL Java

  3. Jak uzyskać liczbę wierszy, których dotyczy instrukcja, gdy znajduje się w wyzwalaczu tego oświadczenia?

  4. Funkcja ABS() w Oracle

  5. Wybór NOT IN z wartościami NULL