Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2006
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Ayuda con la función Right

Hola, estoy intentando devolver el valor de un campo con ceros a la izquierda hasta completar una longitud de 12 caracteres.

Para ello hago:
SELECT Right('0000000000000' + Nombre_campo, 12 ) FROM ...

El problema creo que es que, aunque Nombre_campo es de tipo char(13), contiene valores numéricos y en lugar de concatenar los ceros realmente esta sumando valores, con lo que me devuelve el mismo valor que había almacenado.

Ejemplo:

Nombre_campo = '53' -> me devuelve 53
Nombre_campo = '54' -> me devuelve 54
...

¿Alguien me puede decir que estoy haciendo mal?

Muchísimas gracias
Responder Con Cita
  #2  
Antiguo 10-04-2006
Javi2 Javi2 is offline
Miembro
 
Registrado: jun 2004
Posts: 152
Poder: 20
Javi2 Va por buen camino
Ya está solucionado!!!

La función Right funciona Ok, el problema lo tenía yo con el campo, ya que el valor estaba completado con espacios en blanco hasta llegar a la longitud máxima con lo que el Right no hacía nada.
Responder Con Cita
  #3  
Antiguo 26-12-2007
ozegarra ozegarra is offline
Miembro
 
Registrado: nov 2007
Ubicación: Lima - Peru
Posts: 35
Poder: 0
ozegarra Va por buen camino
Hola, tengo un problema con la funcion right en FireBird. Hago lo mismo que Javi2 para completar con ceros una variable pero me marca error de sintaxis en right. ¿Podría ser que tengo una version de firebird en la que no se permite?.
Favor si alguien puede ayudarme se lo agradeceria.
Recien tengo dos semanas en firebird asi que no conozco mucho los errores, soy full SQL Server asi que si alguien necesita ayuda ahi, aqui estare.

Saludos
Oscar
Responder Con Cita
  #4  
Antiguo 27-12-2007
hecospina hecospina is offline
Miembro
 
Registrado: oct 2007
Posts: 202
Poder: 17
hecospina Va por buen camino
hola Oscar
Yo trabajo firebird 2.0 y tampoco me funciona, no se si las proximas versiones lo tenga, lo hice de la siguiente forma


Código SQL [-]select substring('000000000000000'||trim(codigo) from char_length('000000000000000'||trim(codigo))-15 for 15) as codigo15 from tabla



el numero 15 es la cantidad de ceros que se adicionan, en mi caso necesitaba que el dato fuera de 15 caracteres

es un poco manual pero me funciona
Responder Con Cita
  #5  
Antiguo 27-12-2007
ozegarra ozegarra is offline
Miembro
 
Registrado: nov 2007
Ubicación: Lima - Peru
Posts: 35
Poder: 0
ozegarra Va por buen camino
gracias por la ayuda. Voy a probarlo y te estare comentando. Adicionalmente, en caso tenga el dato en una variable podria hacer lo mismo, es decir, tengo mi dato en una variable a=1, y quisiera tener '00001'. ¿Puedo hacerlo directamente sin necesidad de referenciar una tabla?

GRacias nuevamente.
Oscar
Responder Con Cita
  #6  
Antiguo 27-12-2007
ozegarra ozegarra is offline
Miembro
 
Registrado: nov 2007
Ubicación: Lima - Peru
Posts: 35
Poder: 0
ozegarra Va por buen camino
Gracias por la ayuda, no me funciono pero me dio la pista. Instale una UDF que contenia algunas funciones que me fueron de mucha ayuda para solucionar este impasse.

Saludos
Oscar
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Función Last Triton Firebird e Interbase 2 25-05-2005 17:46:50
Ayuda con funcion Format JulioGO Varios 1 12-05-2005 02:00:05
Ayuda con la función GetFileVersionInfoSize jaderl API de Windows 1 01-02-2005 19:14:14
Ayuda con una función McRight2k Varios 1 13-08-2003 21:47:04
ayuda con sql y la funcion suma romfrost13 Firebird e Interbase 1 04-08-2003 20:46:43


La franja horaria es GMT +2. Ahora son las 21:38:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi