J'ai une colonne de texte varchar (4000) avec le texte:SQL Server: remplacer la séquence de mêmes caractères à l'intérieur Champ de texte (TSQL seulement)
'aaabbaaacbaaaccc'
et je dois enlever tous les caractères en double - donc seulement une séquence de gauche:
'abacbac'
Il ne doit pas être une fonction, une procédure ou CLR - solution Regex. Seul vrai SQL sélectionner.
Actuellement, je pense à l'utilisation de la clause récurrente WITH avec le remplacement 'aa' -> 'a', 'bb' -> 'b', 'cc' -> 'c'.
La récursivité devrait donc être cyclée jusqu'à ce que toutes les séquences dupliquées de ces caractères soient remplacées.
Avez-vous une autre solution, peut-être plus performante? PS: J'ai parcouru ce site à propos de différents exemples de remplacement - ils ne correspondaient pas à ce cas.
Cela ressemble à une question de devoirs. Pourquoi pas de fonctions? – CResults
Ouais, genre de test. Mais je veux vérifier si la variante "WITH" récursive est OK. Pas de fonctions car je sais comment implémenter cela avec fonction. Il est intéressant de trouver la meilleure approche SQL-Native. – zmische
Puis-je ajouter une table auxiliaire? Ce sera très petit mais j'ai, oh je ne sais pas, 4000 lignes :) – CResults