Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como remover dígitos do final da string usando SQL


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

O concat('myvalue', '1') serve para proteger contra números que terminam em 0s.

O reverso vira para que o número fique na frente.

A conversão interna altera a string invertida para um número, descartando os caracteres à direita.

A conversão externa transforma a parte numérica de volta em caracteres, para que você possa obter o comprimento.

Agora você sabe o comprimento da parte numérica e pode determinar o número de caracteres do valor original para cortar com a função "left()".

Feio, mas funciona. :-)