sql >> Database >  >> RDS >> Sqlserver

Voorloop- en volgtekens verwijderen in SQL Server

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.


  1. SQL Server SELECTEER IN @variabele?

  2. TWEEDE() Voorbeeld – MySQL

  3. 11 aanbevolen procedures voor SQL Server-index voor verbeterde prestatieafstemming

  4. Hoe weet ik de id voordat ik een object opslaat in jpa