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

Comment couper des chaînes en SQL

Problème :

Vous souhaitez supprimer des caractères spécifiques au début et à la fin d'une chaîne.

Exemple :

Notre base de données a une table nommée post avec des données sur deux colonnes :id et title .

identifiant titre
1 'Actualités sur les chiens'
3 'Eurovision 2019 '
4 'Nouveau climat politique'

Découpons le titre de chaque message pour supprimer l'espace inutile au début et à la fin.

Solution :

Nous utiliserons le TRIM une fonction. Voici la requête que vous écririez :

SELECT TRIM( BOTH ' ' FROM title ) as new_title
FROM post;

Alternativement, vous pouvez utiliser la version plus courte sans le BOTH mot-clé; par défaut, TRIM traitera cela comme une opération LES DEUX.

SELECT TRIM(' ' FROM title ) as new_title
FROM post;

Voici le résultat des deux requêtes :

nouveau_titre
‘Actualités sur les chiens’
‘Eurovision 2019’
« Nouveau climat politique »

Discussion :

Utilisez le TRIM fonction si vous voulez couper une chaîne dans une table. Cette fonction vous permet de supprimer un caractère spécifique du début ou de la fin d'une chaîne, ou des deux extrémités. Cette fonction prend les arguments suivants :

  • Un mot-clé spécifiant les extrémités à partir desquelles couper (facultatif—BOTH par défaut).
  • Le caractère que vous souhaitez supprimer de la chaîne.
  • Le FROM mot-clé, suivi du nom de la colonne de chaîne à supprimer.

Dans notre exemple, cela ressemble à :

TRIM( BOTH ' ' FROM title )

Comme mentionné ci-dessus, TRIM peut prendre d'autres mots clés comme premier argument. En plus de couper aux deux extrémités, cela nous permet de supprimer un caractère uniquement à la fin d'une chaîne ou uniquement au début :

  • TRAILING (supprimer de la fin)
  • LEADING (supprimer du début)

L'exemple ci-dessous supprime l'espace à la fin de chaque titre (mais pourrait tout aussi bien être utilisé pour couper l'espace au début si vous utilisez le LEADING mot-clé à la place):

SELECT TRIM( TRAILING ' ' FROM title ) as new_title
FROM post;

La requête renvoie le title colonne sans espace à la fin. Notez que les espaces au début ne sont pas modifiés.

nouveau_titre
‘Actualités sur les chiens’
‘Eurovision 2019’
« Nouveau climat politique »