Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment supprimer des chiffres à la fin de la chaîne à l'aide de SQL

Cela semble fonctionner :

select left( concat('2Ga4la2009','1'), length(concat('2Ga4la2009','1')) - length(convert(convert(reverse(concat('2Ga4la2009','1')),unsigned),char)))

Le concat('myvalue', '1') sert à se protéger contre les nombres qui se terminent par des 0.

L'inverse le retourne pour que le numéro soit à l'avant.

La conversion interne change la chaîne inversée en un nombre, supprimant les caractères de fin.

La conversion externe transforme la partie numérique en caractères, de sorte que vous pouvez obtenir la longueur.

Vous connaissez maintenant la longueur de la partie numérique et vous pouvez déterminer le nombre de caractères de la valeur d'origine à couper avec la fonction "left()".

Moche, mais ça marche. :-)