Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con la función Right (https://www.clubdelphi.com/foros/showthread.php?t=30575)

Javi2 10-04-2006 18:27:49

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

Javi2 10-04-2006 18:37:23

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.

ozegarra 26-12-2007 23:09:49

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

hecospina 27-12-2007 20:49:56

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

ozegarra 27-12-2007 21:06:02

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

ozegarra 27-12-2007 21:59:57

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


La franja horaria es GMT +2. Ahora son las 06:16:56.

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