In SQL Server is de TRIM()
functie wordt vaak gebruikt om voorloop- en volgspaties uit een tekenreeks te verwijderen. Maar wist je dat je ook andere karakters aan het begin/einde van een string kunt verwijderen? Het hoeft geen witruimte te zijn.
TRIM()
is een T-SQL-functie die specifiek het spatieteken verwijdert char(32)
of andere opgegeven tekens vanaf het begin of einde van een string.
Syntaxis
De syntaxis gaat als volgt:
TRIM ( [ characters FROM ] string )
De string
argument is een verplicht argument – het is de eigenlijke string die moet worden bijgesneden.
De characters FROM
is een optioneel argument is het bit waarmee u kunt specificeren welke tekens moeten worden verwijderd (ervan uitgaande dat u niet alleen het spatieteken verwijdert). Als u niet opgeeft welke tekens, wordt de spatie bijgesneden.
Voorbeeld
Hier is een eenvoudig voorbeeld van het trimmen van voor- en volggelijktekens (=
) van een string:
SELECT TRIM('=' FROM '=SPECIALS=') AS Result;
Resultaat
Result -------- SPECIALS
Meerdere exemplaren van een personage
Het trimt ook meerdere instanties van het opgegeven teken.
Voorbeeld:
SELECT TRIM('=' FROM '===SPECIALS===') AS Result;
Resultaat:
Result -------- SPECIALS
Meerdere tekens bijsnijden
Je kunt er ook meerdere karakters mee inkorten.
Voorbeeld:
SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;
Resultaat:
Result -------- SPECIALS
Ingesloten witruimte
Als er witruimte bestaat binnen de bijgesneden tekens, verwacht dan niet dat die witruimte wordt bijgesneden (tenzij u het spatieteken ook expliciet specificeert als een van de tekens die moeten worden bijgesneden).
Dit is wat ik bedoel:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultaat:
Result -------------- SPECIALS
In dit geval wordt het gelijkteken bijgesneden, maar blijft de witruimte behouden. Dit komt omdat de witruimte niet direct links en/of rechts van de tekenreeks staat.
Als we zowel het gelijkteken en . willen verwijderen de witruimte, kunnen we eenvoudig een spatie toevoegen aan de lijst met tekens om te trimmen:
SELECT TRIM('=' FROM '= SPECIALS =') AS Result;
Resultaat:
Result -------- SPECIALS
Tekens omgeven door witruimte
Net als in het vorige voorbeeld, kun je niet verwachten dat SQL Server het opgegeven teken bijsnijdt als er een witruimte tussen staat en het begin/einde van de tekenreeks.
Bijvoorbeeld:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Resultaat:
Result ---------------- =SPECIALS=
In dit voorbeeld is er niets bijgesneden. Dit komt omdat er witruimte is tussen de gelijktekens en het begin/einde van de tekenreeks.
In dit geval kunt u eenvoudig het spatieteken toevoegen als een van de tekens die moeten worden bijgesneden:
SELECT TRIM('=' FROM ' =SPECIALS= ') AS Result;
Resultaat:
Result -------- SPECIALS
Voor meer voorbeelden van het gebruik van TRIM()
om witruimte aan de linker- en rechterkant van een tekenreeks bij te snijden, raadpleegt u Voorloop- en volgspaties verwijderen in SQL Server.