sql >> Databáze >  >> RDS >> PostgreSQL

Zjistěte, zda hodnota obsahuje alespoň jednu číselnou číslici v PostgreSQL

Následující příklad vrátí všechny řádky, které obsahují alespoň jednu číselnou číslici v PostgreSQL.

Příklad

Předpokládejme, že máme tabulku nazvanou Products s následujícími údaji ve svém ProductName sloupec:

SELECT ProductName 
FROM Products;

Výsledek:

           productname           
---------------------------------
 Left handed screwdriver
 Right handed screwdriver
 Long Weight (blue)
 Long Weight (green)
 Straw Dog Box
 Bottomless Coffee Mugs (4 Pack)
 Smash 2000 Sledge Hammer
 Chainsaw (3 spare fingers)

Tento sloupec obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech (i když nejsou uloženy jako číselný typ).

Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které obsahují čísla reprezentovaná numerickými číslicemi:

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

Výsledek:

           productname           
---------------------------------
 Bottomless Coffee Mugs (4 Pack)
 Smash 2000 Sledge Hammer
 Chainsaw (3 spare fingers)

Podle očekávání jsou vráceny pouze ty řádky, které obsahují čísla.

V PostgreSQL ~ je operátor rozlišující velká a malá písmena pro shodu daného regulárního výrazu. Pro shody bez rozlišení malých a velkých písmen použijte ~* .

Můžete použít !~ vrátit všechny řádky, které neodpovídají regulárnímu výrazu (a !~* pro shody bez rozlišení velkých a malých písmen).


  1. PostgreSQL:Udělte veškerá oprávnění uživateli v databázi PostgreSQL

  2. Řešení pro:Příkaz Store update, insert nebo delete ovlivnil neočekávaný počet řádků (0)

  3. Jak zálohovat/obnovit MySQL/MariaDB a PostgreSQL pomocí nástrojů „Automysqlbackup“ a „Autopostgresqlbackup“

  4. Jak získat číslo řádku v PostgreSQL