sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man tar bort ledande och efterföljande tecken i SQL Server

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.


  1. SNAPSHOT-isoleringsnivån

  2. Introduktion till OPENJSON med exempel (SQL-server)

  3. Hur man får gårdagens datum i SQLite

  4. SQL - Hur man väljer en rad med en kolumn med maxvärde