sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man använder delsträngsfunktionen i PostgreSQL och Redshift

Ibland kan en sträng i din databas innehålla viss information inbäddad i den strängen som en delsträng. Denna sträng kan vara ett ID-nummer som kan finnas i en aktivitet eller spårningsnummer för ditt företags webbplats.

Här är ett exempel där ett företag som övervakar webbplatstrafikaktivitet har en specifik namnkonvention för aktivitetsspårnings-ID. Namnkonventionen är "Aktivitets-ID" som är 6 tecken och i första positionen, "Kund-ID" som är 7 tecken och visas på andra plats, och i den tredje positionen "Sid-ID" som är 3 tecken långt. Dessa tre ID-nummer sätts ihop i en enda sträng utan delande tecken. I det här exemplet kan ett spårningsnummer se ut så här:WSL194OH08856CAS.

Du kanske vill ta fram kund-ID-numret och för att göra det kan du använda följande delsträngsfunktion:

SUBSTRING("WSL194OH08856CAS",7,7)

Genom att veta att kund-ID-numret är sju siffror långt och börjar med den sjunde positionen fungerar formeln ovan på detta sätt:

Dessutom kanske du bara vill ha aktivitets-ID:t. För att få detta kommer du att använda samma funktion bara på ett lite annorlunda sätt.

SUBSTRING("WSL194OH08856CAS",1,6)

Precis som det tidigare kodavsnittet tittade vi på att den här kommer att börja med 1:a positionen och returnerar en sträng som varar i 6 tecken.

I vårt sista exempel kanske du är intresserad av Page ID, som i vårt fall är i slutet av strängen. För detta kan du använda funktionen så här:

SUBSTRING("WSL194OH08856CAS",14)

I det här exemplet, genom att utelämna det sista argumentet, beordrar du databasen att returnera allt efter och inklusive tecknet på den 14:e positionen.

Med den här funktionen kan du nu analysera en sträng i en kolumn baserat på kända positioner och längder på delsträngar som den kan innehålla. Detta är en användbar teknik för att dela upp en kolumn i flera delsträngar om dessa delsträngar kan användas på ett annat sätt än hela den ursprungliga strängen.


  1. Undantag i JPA vid användning av seed-fil för PostgreSQL

  2. Hur databaser stöder e-handelsföretag

  3. Dynamisk SQL LOOP

  4. Postgres:Lägg till begränsning om den inte redan finns