sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL-vastleggroep voor reguliere expressies in select

Als je probeert de regex-overeenkomst vast te leggen die het resultaat is van de expressie, dan substring zou het lukken:

select substring ('I have a dog', 'd[aeiou]g')

Zou elke match retourneren, in dit geval 'hond'.

Ik denk dat de ontbrekende schakel van wat je hierboven probeerde, was dat je de uitdrukking die je wilt vastleggen tussen haakjes moet zetten. regexp_matches zou in dit geval werken (als u haakjes had opgenomen rond de uitdrukking die u wilde vastleggen), maar zou bij elke overeenkomst een array met tekst retourneren. Als het één overeenkomst is, substring is een beetje handig.

Dus, om terug te keren naar uw voorbeeld, als u probeert stuff te retourneren als en alleen als het aan het begin van een kolom staat:

select substring (column, '^(stuff)')

of

select (regexp_matches (column, '^(stuff)'))[1]


  1. Hoe de gegevens van vandaag / gisteren uit de MySQL-database te halen?

  2. MySql Selecteer waar en C#

  3. Een tabel maken met een rekenkundige overloopfout

  4. Count in where-clausule gebruiken:ongeldig gebruik van groepsfunctie