Bases de Datos - maximo

 
Vista:

maximo

Publicado por alexis (4 intervenciones) el 31/03/2008 17:08:07
buenas tardes

estoy usando base de datos oracle

estoy sacando el valor maximo de un campo pero ese campo es varchar

lo estoy haciendo asi

select concat('MA', max(substr(tipo,3))+1)
into :is_cod_tipo
from tipos
where tipo like 'MA%';

ya que los codigos son

MA245

osea que el campo tiene 5 posiciones

de esa forma me funciona bien

el problema es si tengo un codigo que sea ejemplo

MA040

entonces cuando intento sacar el valor maximo me manda es
MA41

y no

MA041

como podria solucionar eso
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:maximo

Publicado por Franklin Gamboa (188 intervenciones) el 01/04/2008 18:43:17
Lo que tienes q hacer es usar la función LPAD, que lo que hace es rellenar la cadena fuente con la cadena que llega en el tercer parámetro una cantidad dada de veces, de esta forma: LPAD(cad_original, num_veces, cadena_relleno); entonces tu select quedaría así:

select concat('MA', LPAD (max(substr(tipo,3))+1) , 3, '0')
into :is_cod_tipo
from tipos
where tipo like 'MA%';

Espero haberte ayudado.

Saludos.

Franklin Gamboa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar