Oracle
 sql >> база данни >  >> RDS >> Oracle

2 начина за връщане на редове, които не съдържат числови стойности в Oracle

Следващите примери връщат само онези редове, които не съдържат никакви цифрови цифри в дадена колона в Oracle Database.

Примерни данни

Да предположим, че имаме таблица със следните данни:

SELECT ProductName 
FROM Products;

Резултат:

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

Таблицата ProductName използва varchar2 тип данни и затова съдържа символни данни. Но може да съдържа и цифрови цифри.

Пример 1 – Редовен израз

Ето заявка, която можем да използваме, за да върнем всички редове, които не съдържат числови цифри:

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

Резултат:

Left Handed Screwdriver
Right Handed Screwdriver
Beer Water

Пример 2 – POSIX

В Oracle Database, REGEXP_LIKE условието отговаря на стандарта за регулярни изрази POSIX. Следователно можем да получим същия резултат със следната заявка:

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

Резултат:

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. разлика между NLS_NCHAR_CHARACTERSET и NLS_CHARACTERSET за Oracle

  2. Oracle DateTime в клауза Къде?

  3. Матрица на поддържаните версии на Oracle

  4. Как мога да дам псевдоним на таблица в Oracle?

  5. oracle plsql:как да анализирате XML и да го вмъкнете в таблица