Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment supprimer les caractères de début et de fin dans SQL Server

Dans SQL Server, le TRIM() La fonction est couramment utilisée pour supprimer les espaces de début et de fin d'une chaîne. Mais saviez-vous que vous pouvez également supprimer d'autres caractères au début/à la fin d'une chaîne ? Il n'est pas nécessaire que ce soit un espace blanc.

TRIM() est une fonction T-SQL qui supprime spécifiquement le caractère d'espacement char(32) ou d'autres caractères spécifiés depuis le début ou la fin d'une chaîne.

Syntaxe

La syntaxe ressemble à ceci :

TRIM ( [ characters FROM ] string )

La string argument est un argument obligatoire - c'est la chaîne réelle à couper.

Les characters FROM est un argument facultatif est le bit qui vous permet de spécifier quels caractères doivent être supprimés (en supposant que vous ne supprimez pas simplement le caractère espace). Si vous ne spécifiez pas quels caractères, le caractère d'espacement sera coupé.

Exemple

Voici un exemple de base de découpage des signes d'égalité de début et de fin (= ) à partir d'une chaîne :

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

Résultat

Result  
--------
SPECIALS

Plusieurs instances d'un personnage

Il supprime également plusieurs instances du caractère spécifié.

Exemple :

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

Résultat :

Result  
--------
SPECIALS

Rogner plusieurs caractères

Il vous permet également de découper plusieurs caractères.

Exemple :

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

Résultat :

Result  
--------
SPECIALS

Espace blanc intégré

Si un espace blanc existe à l'intérieur du ou des caractères coupés, ne vous attendez pas à ce que cet espace blanc soit coupé (sauf si vous spécifiez également explicitement le caractère espace comme l'un des caractères à couper).

Voici ce que je veux dire :

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

Résultat :

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

Dans ce cas, le signe égal est coupé mais l'espace blanc reste. C'est parce que l'espace blanc n'est pas immédiatement à gauche et/ou à droite de la chaîne.

Si nous voulons supprimer à la fois le signe égal et l'espace blanc, on peut simplement ajouter un caractère espace à la liste des caractères à rogner :

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

Résultat :

Result  
--------
SPECIALS

Personnages entourés d'espaces blancs

Comme dans l'exemple précédent, vous ne pouvez pas vous attendre à ce que SQL Server supprime le caractère spécifié s'il y a un espace entre celui-ci et le début/la fin de la chaîne.

Par exemple :

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

Résultat :

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

Dans cet exemple, rien n'a été coupé. C'est parce qu'il y a un espace blanc entre les signes égal et le début/la fin de la chaîne.

Dans ce cas, vous pouvez simplement ajouter le caractère espace comme l'un des caractères à rogner :

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

Résultat :

Result  
--------
SPECIALS

Pour plus d'exemples d'utilisation de TRIM() pour supprimer les espaces blancs à gauche et à droite d'une chaîne, consultez Comment supprimer les espaces blancs de début et de fin dans SQL Server.