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

Come rimuovere i caratteri iniziali e finali in SQL Server

In SQL Server, il TRIM() La funzione è comunemente usata per rimuovere gli spazi bianchi iniziali e finali da una stringa. Ma lo sapevi che puoi anche rimuovere altri caratteri dall'inizio/fine di una stringa? Non deve essere uno spazio bianco.

TRIM() è una funzione T-SQL che rimuove specificamente il carattere spazio char(32) o altri caratteri specificati dall'inizio o dalla fine di una stringa.

Sintassi

La sintassi è questa:

TRIM ( [ characters FROM ] string )

La string argomento è un argomento obbligatorio:è la stringa effettiva da tagliare.

characters FROM è un argomento facoltativo è il bit che ti consente di specificare quali caratteri devono essere rimossi (supponendo che tu non stia solo rimuovendo il carattere spazio). Se non specifichi quali caratteri, lo spazio verrà tagliato.

Esempio

Ecco un esempio di base di taglio dei segni di uguale iniziali e finali (= ) da una stringa:

SELECT TRIM('=' FROM '=SPECIALS=') AS Result;

Risultato

Result  
--------
SPECIALS

Istanze multiple di un personaggio

Taglia anche più istanze del carattere specificato.

Esempio:

SELECT TRIM('=' FROM '===SPECIALS===') AS Result;

Risultato:

Result  
--------
SPECIALS

Rifilatura di più caratteri

Ti consente anche di tagliare più caratteri.

Esempio:

SELECT TRIM('!*=+?' FROM '=+=*!SPECIALS?=+=') AS Result;

Risultato:

Result  
--------
SPECIALS

Spazio bianco incorporato

Se esiste uno spazio bianco all'interno del/i carattere/i tagliato/i, non aspettarti che lo spazio bianco venga tagliato (a meno che tu non specifichi esplicitamente anche il carattere spazio come uno dei caratteri da tagliare).

Ecco cosa intendo:

SELECT TRIM('=' FROM '=   SPECIALS   =') AS Result;

Risultato:

Result        
--------------
   SPECIALS   

In questo caso, il segno di uguale viene tagliato ma lo spazio bianco rimane. Questo perché lo spazio bianco non è immediatamente a sinistra e/oa destra della stringa.

Se vogliamo rimuovere entrambi i segni di uguale e lo spazio bianco, possiamo semplicemente aggiungere uno spazio all'elenco dei caratteri da ritagliare:

SELECT TRIM('= ' FROM '=   SPECIALS   =') AS Result;

Risultato:

Result  
--------
SPECIALS

Personaggi circondati da spazi bianchi

Simile all'esempio precedente, non puoi aspettarti che SQL Server tagli il carattere specificato se è presente uno spazio vuoto tra esso e l'inizio/fine della stringa.

Ad esempio:

SELECT TRIM('=' FROM '   =SPECIALS=   ') AS Result;

Risultato:

Result          
----------------
   =SPECIALS=

In questo esempio, nulla è stato tagliato. Questo perché c'è uno spazio bianco tra i segni di uguale e l'inizio/fine della stringa.

In questo caso, puoi semplicemente aggiungere il carattere spazio come uno dei caratteri da ritagliare:

SELECT TRIM('= ' FROM '   =SPECIALS=   ') AS Result;

Risultato:

Result  
--------
SPECIALS

Per ulteriori esempi di utilizzo di TRIM() per tagliare gli spazi bianchi a sinistra e a destra di una stringa, consulta Come rimuovere gli spazi vuoti iniziali e finali in SQL Server.