sql >> Database >  >> RDS >> PostgreSQL

Vind waarden die geen getallen bevatten in PostgreSQL

Het volgende voorbeeld retourneert alle rijen die geen getallen bevatten in PostgreSQL.

Getallen kunnen worden weergegeven door woorden en andere symbolen, maar voor dit artikel betekent "getal" gewoon "numeriek cijfer". We vinden dus waarden die geen numerieke cijfers bevatten.

Voorbeeld

Stel dat we een tabel hebben met de naam Products met de volgende gegevens in zijn ProductName kolom:

SELECT ProductName 
FROM Products;

Resultaat:

           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)

Deze kolom bevat tekengegevens, maar sommige rijen bevatten getallen binnen die tekengegevens (ook al zijn ze niet opgeslagen als een numeriek type).

We kunnen de volgende query gebruiken om alleen die rijen te retourneren die geen numerieke cijfers bevatten:

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

Resultaat:

       productname        
--------------------------
 Left handed screwdriver
 Right handed screwdriver
 Long Weight (blue)
 Long Weight (green)
 Straw Dog Box
(5 rows)

Zoals verwacht worden alleen die rijen geretourneerd die geen numerieke cijfers bevatten.

In PostgreSQL, !~ is een hoofdlettergevoelige operator die wordt gebruikt voor het retourneren van waarden die niet overeenkomen met de opgegeven reguliere expressie. Gebruik voor hoofdletterongevoelige overeenkomsten !~* .

U kunt ~ . gebruiken om alle rijen terug te geven die doen overeenkomen met de reguliere expressie (en ~* voor niet-hoofdlettergevoelige overeenkomsten).


  1. Converteer varchar naar datetime in SQL Server

  2. Verbind uw OEM met Grafana met behulp van de Enterprise Manager-app voor Grafana

  3. SQL Server - Kortsluiting opvragen?

  4. Trek jaren af ​​van een datum in PostgreSQL