Découper un texte après un caractère avec SQL Server

Comment découper un texte après un caractère particulier avec SQL Server ? Comme par exemple un nom de fichier fichier.txt pour séparer le nom du fichier de son extension. En effet, il est évident que découper une chaîne juste avant le caractère, ici un point, doit se faire de manière dynamique, c’est à dire quelle que soit la position du caractère.

Comment séparer une chaîne de texte après un caractère spécifique avec une requête SQL ?

Tout d’abord, pour découper une chaîne de texte avec MS SQL juste après un certain caractère, utiliser les fonctions textes suivantes:

  • SUBSTRING() pour découper un texte en indiquant le début et la longueur à découper.
  • CHARINDEX() retourne la position d’un texte à rechercher. La fonction utilise le texte à rechercher, le texte dans lequel rechercher et la position de départ de la recherche.
  • LEN() est une fonction qui retourne la longueur d’un texte donné.

Exemple de code SQL pour couper un texte juste après un caractère

Par ailleurs, cet exemple n’est pas récursif, pour le rendre récursif, intégrer la logique dans une boucle. Ajuster ensuite la variable qui contient la position dans la chaîne principale. Un lien vers la solution récursive est disponible en bas de cet article.

Exemple de code SQL Server Substring pour découper un texte après un caractère spécifique.

-- Déclaration des variables utilisées comme chaine de départ, chaine de résultat et le caractère utilisé
declare @ChaineDepart nvarchar(100)
declare @Resultat nvarchar(100)
declare @Caractere nvarchar(10)

-- Définition de la chaîne de caractère
set @ChaineDepart = 'DEBUT_DE_CHAINE.FIN_DE_CHAINE'

-- Définition du caractère ou de la chaîne de caractère à chercher pour couper la chaîne en deux
set @Caractere = '.'
set @Resultat = substring(@ChaineDepart,CHARINDEX(@Caractere, @ChaineDepart)+1,len(@ChaineDepart))

select @ChaineDepart as 'Chaine de Départ'
select @Resultat as 'Chaine de Résultat'
Découper un texte après un caractère avec SQL Server, capture d'écran du résultat avec SSMS
Requête SQL pour découper un texte après un caractère avec SSMS

Enfin, comme évoqué au début de l’article, cette fois, voici un exemple de script SQL pour découper une chaîne de caractère de manière récursive et transformer le résultat en lignes :

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*