sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fjerner du ledende og efterfølgende tegn i SQL Server

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.


  1. Dvalekriterier for datoer

  2. Udvikling af fejltolerance i PostgreSQL:Tidsrejse

  3. Disaster Recovery Planning for MySQL &MariaDB

  4. Sådan bestiller du efter månedsnavn i PostgreSQL eller Oracle