MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Намерете стойности, които не съдържат числа в SQL

Ако имате колона в таблица на база данни, която съдържа данни за знаци, но някои редове също съдържат числа, можете да използвате следните SQL заявки, за да върнете само онези редове, които не съдържат числа в стойността.

Строго погледнато, числата могат да бъдат представени с цифрови цифри, думи и други символи, но за целите на тази статия „число“ означава „числова цифра“. Така че намираме стойности, които не съдържат никакви цифрови цифри.

Заявката, която използвате, ще зависи от вашата СУБД.

SQL сървър

В SQL Server можем да използваме заявка като тази:

SELECT ProductName 
FROM Products
WHERE ProductName NOT LIKE '%[0-9]%';

Тук връщаме всички редове, където ProductName колоната не съдържа никакви цифрови цифри.

Оракул

В Oracle можем да използваме REGEXP_LIKE() функция:

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

В този случай предоставяме модел на регулярен израз, който съответства на стойностите, които не искаме да бъдат връщани. Стойностите всъщност са съвпадащи, но ние също така отричаме съвпадението, като използваме NOT , което означава, че всичко, което не съвпада, се връща.

Друг начин да го направите е да използвате [:digit:] POSIX клас символи:

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

MySQL

В MySQL можем да използваме NOT REGEX функция:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Друг начин да го напишете е така:

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

Или можем да използваме [:digit:] POSIX клас символи:

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

MariaDB

В MariaDB можем да използваме неговата реализация на NOT REGEX функция:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Друг начин да го напишете е така:

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

Или можем да използваме [:digit:] POSIX клас символи:

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

PostgreSQL

Ето как можем да го направим в Postgres:

SELECT ProductName 
FROM Products
WHERE ProductName !~ '[0-9]+';

SQLite

В SQLite можем да направим това:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

В SQLite, REGEXP операторът е специален синтаксис за REGEXP() потребителска функция, така че можем да направим и следното:

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

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Индексиране на мангуста в производствения код

  2. Поставете Pandas Dataframe в mongodb с помощта на PyMongo

  3. mongodb текстово търсене с помощта на няколко езика

  4. MongoDB, премахнете обекта от масива

  5. DbRef с Mongoose - mongoose-dbref или попълване?