J'ai une fonction qui normalise les adresses. Ce que je voudrais faire maintenant, c'est enlever toutes les chaînes dans une liste limitée, spécifiée si elles se produisent à la fin de la chaîne. Disons que les chaînes que je veux supprimer sont 'st', 'ave', 'rd', 'dr', 'ct' ... Si la chaîne se termine par l'une de ces chaînes, je veux les supprimer. Quelle est la meilleure façon d'y parvenir, en utilisant T-SQL (ceci fera et non faire partie d'une instruction select)?Quel est le moyen le plus simple/le meilleur pour supprimer des sous-chaînes à la fin d'une chaîne?
Edit:
C'est une fonction qui accepte une adresse et formate. Je voudrais intégrer le code et la liste, mais de la manière la plus simple possible. Par exemple, un code avec lequel j'ai joué est:
if @address LIKE '%st'
SET @address = substring(@address, 1, PatIndex('%st', @address) - 1)
Est-ce une bonne méthode? Comment puis-je le mettre dans une sorte de boucle afin que je puisse répéter ce code avec des valeurs différentes (autres que st)?
C'est une fonction qui accepte une adresse à la fois et il normalise ... Il n'y a pas de table « adresses » – froadie
@froadie, je avoir changé le concept à utiliser dans une fonction. La chaîne 'Streetst' serait remplacée par votre variable d'entrée. Rappelez-vous que cette solution supprime seulement * une * fin. –
quand j'essaye d'employer ce code j'obtiens "la syntaxe incorrecte près du mot-clé" avec "". Aussi, pouvez-vous expliquer ce que vous essayez de faire avec le code "with q ..."? Je n'ai pas vraiment vu de syntaxe comme celle-ci et je ne comprends pas ce que ça fait ... – froadie