Sacar el max de una columna

Que tal, disculpe.
Estoy desarrollando una aplicación en visual basic 6 y oracle 10, el detalle es el siguiente:
Debo generar un numero consecutivo para ir guardando ciertas "ordenes de servicio" la cuestión es que yo declare el campo que me guarda esos consecutivos como varchar debido a que en algún momento puede ser que se de un caso como "13-A y 13-B" si lo declaro como entero lo anterior no lo aceptaría obviamente por eso decidí que fuera varchar. Allí el problema ya que cuando busco el Max de ellos para generar el nuevo solo me funciona esto hasta el numero 10 ya que el 11 ya no me lo da si no que me sigue dando el 10 y allí se queda. Habrá algunamanera de convertir o no se usted sabrá,,
Espero su ayuda

1 Respuesta

Respuesta
1
Disculpa el retraso, pero por si todavía necesitas la ayuda podrías ocupar una consulta convirtiendo el campo a numérico, así:
select max(to_number(campo1)) from TABLA;
Esto seria para el caso que sean solo números los insertados, pero se complicaría si existe algún valor como el que mencionas (13-A) ya que así tendrías que hacer algún SUBSTR para extraer solo el texto que contiene los números y luego utilizar la formula del to_number
Me quede pensando sobre como extraer solo el texto de numero y esta consulta te pudiera servir, suponiendo que solo existan casos en que lo agregado al numero sean dos caracteres como el ejemplo que pusiste "-A", "-B", te funcionaria lo siguiente:
select max(to_number(case
         when (length(campo1)<= 2)  then substr(campo1,1,length(campo1))
         else substr(campo1,1,(length(campo1)-2))
       end))
 from TABLA;
Viejo, gracias en verdad me ha servido demasiado tu ayuda, espero y sigamos en contacto po cualquier cosa que se me pueda presentar. Gracias de Antemano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas