Många SQL-utvecklare stöter på behovet av att dela upp strängar i mindre delar, baserat på ett visst avgränsningstecken. Ibland kan det dock kännas oklart exakt hur man ska gå tillväga. I den här guiden kommer vi därför att utforska olika metoder för att dela strängar med avgränsare i SQL, på ett sätt som är enkelt att följa. Läs igenom de olika stegen noggrant för att på ett effektivt sätt dela upp strängar med hjälp av avgränsare i din SQL-server.
Fyra Metoder för att Dela Strängar med Avgränsare i SQL
Vi kommer att gå igenom fyra olika sätt att hantera delade strängvärden. Du kan välja den metod som bäst passar dina behov och med respektive funktion nå önskat resultat i SQL-servern. Låt oss sätta igång!
Metod 1: Grundläggande SQL-strängdelning
Detta är en av de enklaste metoderna för att dela en sträng med avgränsare. Den använder funktionen SPLIT()
, som tar emot strängen och avgränsaren som argument. Strängen delas sedan upp baserat på den specificerade avgränsaren.
Syntax:
SPLIT(sträng, avgränsare)
1. Som standard delar denna funktion upp strängvärdet baserat på kommatecken (,). Om du vill använda en annan avgränsare, måste du ange den.
Exempel:
SELECT SPLIT('1,2,3,4,5,6,7', ',') AS arr;
Resultat:
arr "[1,2,3,4,5,6,7]"
2. Om en tom avgränsare anges, returnerar funktionen en UTF-8-teckenarray från strängvärdet. I exemplet nedan delar vi strängen med ett blanksteg som avgränsare.
Exempel: (Array av strängar)
SELECT SPLIT('p q r s t u v', ' ') AS arr;
Resultat:
arr "[p,q,r,s,t,u,v]"
3. Om du använder en tom sträng, kommer funktionen att returnera en tom array.
Exempel:
SELECT SPLIT('', '') AS arr;
Resultat:
arr []
Metod 2: SQL Server-strängdelning
I SQL Server kan du använda STRING_SPLIT()
-funktionen för att dela en sträng med en avgränsare.
Syntax:
STRING_SPLIT (sträng , avgränsare)
Exempel:
SELECT VALUE FROM STRING_SPLIT('m,n,o,p,q,r', ',');
Resultat:
VALUE -------------------- m n o p q r
Metod 3: PostgreSQL-strängdelning
Med hjälp av SPLIT_PART()
-funktionen kan du dela upp vilken sträng som helst i SQL. Den här funktionen i PostgreSQL tar en sträng och en avgränsare som indata. Den returnerar också den del av strängen som specificeras av en positionsangivelse.
Obs: Positionsparametern måste vara ett positivt heltal som börjar på 1.
Syntax:
SPLIT_PART(sträng, avgränsare, position)
Exempel:
select split_part('h,e,l,l,o', ',', 3);
Resultat:
split_part l
Metod 4: MySQL-strängdelning
För att dela upp strängar i MySQL kan vi använda SUBSTRING_INDEX()
-funktionen. Den tar strängen, avgränsaren och ett räknarargument som indata. Funktionen returnerar den angivna delen av strängen som avgränsas av avgränsaren.
Syntax:
SUBSTRING_INDEX(sträng, avgränsare, antal)
Exempel:
SELECT SUBSTRING_INDEX('q,w,e,r,t,y', ',', 6);
Resultat:
q,w,e,r,t,y
***
Vi hoppas att du nu har en bra förståelse för de fyra olika sätten att dela upp strängar med avgränsare i SQL. Om du har några frågor kring den här artikeln eller önskar att vi skriver om något annat ämne, får du gärna lämna en kommentar nedan.