sql >> Base de Datos >  >> RDS >> Mysql

Cómo eliminar dígitos del final de la cadena usando SQL

Esto parece funcionar:

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

El concat('myvalue', '1') es para proteger contra números que terminan en 0s.

El reverso lo voltea para que el número esté al frente.

La conversión interna cambia la cadena invertida a un número, descartando los caracteres finales.

La conversión externa vuelve a convertir la parte numérica en caracteres, para que pueda obtener la longitud.

Ahora conoce la longitud de la parte numérica y puede determinar la cantidad de caracteres del valor original para cortar con la función "izquierda()".

Feo, pero funciona. :-)