I SQL Server, TRIM()
funktionen används vanligtvis för att ta bort inledande och efterföljande blanksteg från en sträng. Men visste du att du också kan ta bort andra tecken från början/slutet av en sträng? Det behöver inte vara blanksteg.
TRIM()
är en T-SQL-funktion som specifikt tar bort mellanslagstecknet char(32)
eller andra specificerade tecken från början eller slutet av en sträng.
Syntax
Syntaxen ser ut så här:
TRIM ( [ characters FROM ] string )
string
argument är ett obligatoriskt argument – det är den faktiska strängen som ska trimmas.
characters FROM
är ett valfritt argument är den bit som låter dig specificera vilka tecken som ska tas bort (förutsatt att du inte bara tar bort mellanslagstecknet). Om du inte anger vilka tecken, kommer mellanslagstecknet att trimmas.
Exempel
Här är ett grundläggande exempel på att trimma ledande och efterföljande likhetstecken (=
) från en sträng:
SELECT TRIM('=' FROM '=SPECIALS=') AS Result;
Resultat
Result -------- SPECIALS
Flera instanser av en karaktär
Det trimmar också flera instanser av det angivna tecknet.
Exempel:
SELECT TRIM('=' FROM '===SPECIALS===') AS Result;
Resultat:
Result -------- SPECIALS
Trimma flera tecken
Det låter dig också trimma flera tecken.
Exempel:
SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;
Resultat:
Result -------- SPECIALS
Inbäddat vitt utrymme
Om blanksteg finns inuti de beskurna tecknen eller tecknen, förvänta dig inte att blanktecken beskärs (såvida du inte också uttryckligen anger blanksteg som ett av tecknen som ska trimmas).
Så här menar jag:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultat:
Result -------------- SPECIALS
I det här fallet trimmas likhetstecknet men det vita utrymmet finns kvar. Detta beror på att det vita utrymmet inte är direkt till vänster och/eller till höger om strängen.
Om vi vill ta bort både likhetstecknet och det vita utrymmet kan vi helt enkelt lägga till ett blanksteg i listan över tecken att trimma:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultat:
Result -------- SPECIALS
Tecken omgivna av blanksteg
I likhet med föregående exempel kan du inte förvänta dig att SQL Server ska trimma det angivna tecknet om det finns blanksteg mellan det och början/slutet av strängen.
Till exempel:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Resultat:
Result ---------------- =SPECIALS=
I det här exemplet trimmades ingenting. Detta beror på att det finns blanksteg mellan likhetstecknen och början/slutet på strängen.
I det här fallet kan du helt enkelt lägga till mellanslagstecknet som ett av tecknen som ska trimmas:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Resultat:
Result -------- SPECIALS
För fler exempel på hur du använder TRIM()
för att trimma blanksteg från vänster och höger om en sträng, se Hur man tar bort ledande och efterföljande blanksteg i SQL Server.