Oracle - mise à Jour de la chaîne à remplacer le dernier caractère
J'ai la chaîne suivante dans une base de données Oracle 9i:
A,B,C,
J'ai besoin de remplacer toutes les occurrences de ',' quand il est le dernier élément de la chaîne. Je suis venu avec l'instruction suivante, mais il supprime tout ce qui dans le domaine non seulement la virgule. Des suggestions?
UPDATE table SET column = REPLACE(SUBSTR(column, -1, 1), ',', '');
Merci!!!! Le commentaire
Vous obtenez null provoquer la fonction
Excellent merci! Serait une fonction similaire de travail si je cherche à supprimer un", " ça a été le premier caractère d'une chaîne de caractères? (A,B,C)
le "merci" n'était pas pour toi - j'ai attrapé le "où" et Quassnoi attrapé le "remplacer" la chose (et que vous avez modifié votre réponse après avoir vu!). Merci de ne pas prendre de crédit qui ne vous appartient pas!
qui serait en fait être encore "plus facile" cause que vous pouvez faire:
UPDATE mytable SET column = SUBSTR(column, 1, LENGTH(column) - 1) WHERE SUBSTR(column, -1, 1) = ','
a fonctionné pour moi. Les autres toujours masquée l'ensemble de la ligne au lieu de simplement la dernière ','.Vous obtenez null provoquer la fonction
REPLACE
retourne null - vérifier mes mises à jour répondreExcellent merci! Serait une fonction similaire de travail si je cherche à supprimer un", " ça a été le premier caractère d'une chaîne de caractères? (A,B,C)
le "merci" n'était pas pour toi - j'ai attrapé le "où" et Quassnoi attrapé le "remplacer" la chose (et que vous avez modifié votre réponse après avoir vu!). Merci de ne pas prendre de crédit qui ne vous appartient pas!
qui serait en fait être encore "plus facile" cause que vous pouvez faire:
UPDATE table SET column = SUBSTR(column, 2) WHERE SUBSTR(column, 1, 1) = ',';
OriginalL'auteur PhelpsK | 2013-09-18
Vous devez vous connecter pour publier un commentaire.
Vous avez oublié d'ajouter la condition:
WHERE SUBSTR(column, -1, 1) = ','
Quassnoi pris une autre question - REMPLACER retourne null - vous ne pouvez pas l'utiliser à l'intérieur de la "set"
Complète de sql:
Ce sera assurez-vous que vous faites le remplacer seulement dans les lignes qui a des valeurs qui se termine par ","
WHERE column LIKE '%,'
OriginalL'auteur alfasin
rtrim(column, ',')
est à la fois efficace et beaucoup plus courteêtes-vous dérangé plus à répondre à la brièveté d'ou l'utilité? Les deux sont de qualité supérieure, à mon humble avis. )
OriginalL'auteur Vadzim
OriginalL'auteur Quassnoi
Si vous souhaitez voir la rubrique 'colonne' 1 seul fois dans votre requête, il suffit de faire comme suit:
UPDATE table SET column = REVERSE(SUBSTR(REVERSE(column), 2));
OriginalL'auteur fse