sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan bruger du understrengsfunktionen i PostgreSQL og Redshift

Nogle gange kan en streng i din database indeholde nogle oplysninger, der er indlejret i den streng som en understreng. Denne streng kan være et id-nummer, der muligvis findes i et aktivitets- eller sporingsnummer for din virksomheds hjemmeside.

Her er et eksempel, hvor en virksomhed, der overvåger webstedstrafikaktivitet, har en specifik navnekonvention for aktivitetssporings-id'et. Navnekonventionen er "Aktivitets-ID", som er på 6 tegn og i den første position, "Kunde-id", som er på 7 tegn og vises på andenpladsen, og på den tredje position "Side-id", som er 3 tegn langt. Disse tre ID-numre er sat sammen i en enkelt streng uden skilletegn. I dette eksempel kan et sporingsnummer se sådan ud:WSL194OH08856CAS.

Du ønsker måske at trække kunde-id-nummeret ud, og for at gøre det kan du bruge følgende understrengsfunktion:

SUBSTRING("WSL194OH08856CAS",7,7)

Ved at vide, at kunde-id-nummeret er 7 cifre langt og begynder med den 7. position, fungerer formlen skitseret ovenfor på denne måde:

Du vil måske også bare have aktivitets-id'et. For at få dette vil du bruge den samme funktion bare på en lidt anden måde.

SUBSTRING("WSL194OH08856CAS",1,6)

Ligesom det forrige kodestykke, så vi på, at denne begynder med 1. position og returnerer en streng, der varer 6 tegn.

I vores sidste eksempel kan du være interesseret i Page ID, som i vores tilfælde er i slutningen af ​​strengen. Til dette kan du bruge funktionen som denne:

SUBSTRING("WSL194OH08856CAS",14)

I dette eksempel, ved at udelade det sidste argument, beordrer du databasen til at returnere til dig alt efter og inklusive tegnet i den 14. position.

Ved at bruge denne funktion kan du nu analysere en streng i en kolonne baseret på kendte positioner og længder af understrenge, som den kan indeholde. Dette er en nyttig teknik til at opdele en kolonne i flere understrenge, hvis disse understrenge kan bruges på en anden måde end hele den originale streng.


  1. group_concat og hvordan man bruger rækkenummer i sqlite

  2. kryds anvende xml-forespørgsel klarer sig eksponentielt dårligere, efterhånden som xml-dokumentet vokser

  3. Udvikling af PostgreSQL til Windows, del 2

  4. Hvordan EDB blev førende på Postgres-markedet