J'ai une colonne dans ma table SQL Server appelée Je tiens à supprimer tous ces "C0 02/14 / 18 ". Il est d'environ 11 caractères de la droite. p> Comment puis-je les supprimer s'il vous plaît et il suffit de revenir p> brn_description code> avec les données ci-dessous:
6 Réponses :
Essayez ce code: Remplacez @str avec votre nom de colonne P>
déclarer @str nvarchar (max) = 'Minneapolis C0 02/14/18'
Sélectionnez Gauche (@ Str, Len (@str) -11) Code> P>
Vous pouvez utiliser démo p> p> remplacer code> si votre chaîne est corrigée
Tant que la sous-chaîne à retirer de la fin n'est pas contenue au milieu de la chaîne. Donc dans ce cas j'imagine qu'il serait
Vous voudrez peut-être:
update t
set brn_description = left(brn_description, len(brn_description) - 11)
where col like '% c0 [0-9][0-9]/[0-9][0-9]/[0-9][0-9]';
Juste au cas où il y a des espaces de fin ou des crlfs, etc., je choisirais de trouver la
ou dans ce cas, vous pouvez probablement utiliser Charindex car l'espace est assez évident p>
Mettre à jour la colonne de jeux Brn_description = gauche (colonne, len (colonne) - 12) code> p>
update brn_description règle colonne = gauche (colonne, charindex ('', colonne) - 1) code> p>
Vous voudrez peut-être supprimer tout après le deuxième espace de la droite (vous ne pouvez pas utiliser le premier de la gauche si vous avez par exemple. "Los Angeles"). Localisez l'index de cet espace avec charindex () code> sur le Reverse () code> de la chaîne. Une fois que vous l'avez eu, vous pouvez soustraire la longueur de la longueur de la chaîne, que vous obtenez avec len () code> et prenez de nombreux caractères de gauche avec gauche () code> (le La longueur est la même si elle est inversée ou non, c'est pourquoi cela fonctionne). SELECT left(brn_description, len(brn_description) - charindex(' ', reverse(brn_description), charindex(' ', reverse(brn_description)) + 1))
FROM (SELECT 'Minneapolis c0 02/14/18' brn_description
UNION ALL
SELECT 'Sacramento c0 02/14/18' brn_description
UNION ALL
SELECT 'Vancouver c0 02/14/18' brn_description
UNION ALL
SELECT 'Los Angeles c0 02/14/18' brn_description) x;
"Environ 11 caractères" ou exactement i> 11 caractères?
Vous avez des suggestions. Notez qu'ils sont tous construits sur des hypothèses. Votre premier objectif est d'analyser vos valeurs existantes pour déterminer s'il existe un modèle fiable - celui que vous souhaitez utiliser comme base pour une solution. Des phrases telles que "environ 11 caractères" suggèrent que vous essayez toujours de pirater un chemin vers votre objectif. Que se passe-t-il lorsque le nom de la ville est composé de plusieurs mots (Los Angeles)? "C0" est-il toujours présent? Des années à 2 chiffres - qui n'a pas appris les leçons de Y2K? Chaque ligne a-t-elle ces 3 éléments? Que devriez-vous arriver s'ils ne le font pas? Pense d'abord. Documez vos hypothèses.