I SQL Server er TRIM()
funktion bruges almindeligvis til at fjerne indledende og efterstillede mellemrum fra en streng. Men vidste du, at du også kan fjerne andre tegn fra starten/slutningen af en streng? Det behøver ikke at være mellemrum.
TRIM()
er en T-SQL-funktion, der specifikt fjerner mellemrumstegnet char(32)
eller andre specificerede tegn fra starten eller slutningen af en streng.
Syntaks
Syntaksen ser sådan ud:
TRIM ( [ characters FROM ] string )
string
argument er et påkrævet argument – det er den faktiske streng, der skal trimmes.
characters FROM
er et valgfrit argument er den bit, der giver dig mulighed for at angive, hvilke tegn der skal fjernes (forudsat at du ikke bare fjerner mellemrumstegnet). Hvis du ikke angiver hvilke tegn, vil mellemrumstegnet blive beskåret.
Eksempel
Her er et grundlæggende eksempel på trimning af førende og efterfølgende lighedstegn (=
) fra en streng:
SELECT TRIM('=' FROM '=SPECIALS=') AS Result;
Resultat
Result -------- SPECIALS
Flere forekomster af et tegn
Det trimmer også flere forekomster af det angivne tegn.
Eksempel:
SELECT TRIM('=' FROM '===SPECIALS===') AS Result;
Resultat:
Result -------- SPECIALS
Trimning af flere tegn
Det giver dig også mulighed for at trimme flere tegn.
Eksempel:
SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;
Resultat:
Result -------- SPECIALS
Embedded White Space
Hvis der er mellemrum inde i de beskårne tegn/tegn, skal du ikke forvente, at mellemrummet trimmes (medmindre du også udtrykkeligt angiver mellemrumstegnet som et af tegnene, der skal trimmes).
Her er hvad jeg mener:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultat:
Result -------------- SPECIALS
I dette tilfælde trimmes lighedstegnet, men det hvide mellemrum forbliver. Dette skyldes, at det hvide mellemrum ikke er umiddelbart til venstre og/eller til højre for strengen.
Hvis vi ønsker at fjerne både lighedstegnet og det hvide mellemrum, kan vi blot tilføje et mellemrumstegn til listen over tegn, der skal trimmes:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultat:
Result -------- SPECIALS
Karakterer omgivet af mellemrum
I lighed med det foregående eksempel kan du ikke forvente, at SQL Server trimmer det angivne tegn, hvis der er mellemrum mellem det og starten/slutningen af strengen.
For eksempel:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Resultat:
Result ---------------- =SPECIALS=
I dette eksempel blev intet trimmet. Dette skyldes, at der er mellemrum mellem lighedstegnene og starten/slutningen af strengen.
I dette tilfælde kan du blot tilføje mellemrumstegnet som et af tegnene, der skal trimmes:
SELECT TRIM('= ' FROM ' =SPECIALS= ') AS Result;
Resultat:
Result -------- SPECIALS
For flere eksempler på brug af TRIM()
for at trimme mellemrum fra venstre og højre for en streng, se Sådan fjerner du ledende og efterstillede mellemrum i SQL Server.