Formato en OUTPUT de SP

24/05/2005 - 16:31 por Javier Perez | Informe spam
Hola, gente del foro, le consulto respecto al siguiente problema que tengo:
Quiero formatear la salida de un SELECT para que reconozca los ceros a
izquierda.
por ejemplo: campo1 tiene el valor 123 y campo2 tiene el valor 789

yo realizo

SELECT campo1 & '/' & campo2
y el resultado es:
123/789

yo quisiera que el resultado sea:
000123/0789

es posible esto realizarlo en SQL en el mismo Store Procedure?

Estuve leyendo otros threads donde Maxi aconseja que esto se realice en
el cliente ya que estaria mas estandar, opino lo mismo, pero seria
tecnicamente realizarlo en SQL Server? (aunque sea no aconsejable).

Gracias por la ayuda
Atentamente

Javier Perez

Preguntas similare

Leer las respuestas

#1 Eleazar
24/05/2005 - 16:49 | Informe spam
Hola
si es posible si el result es tipo varchar le concatenas los ceros
que es el simbolo & o para que sirve?
Ele
Ver. Mex.

"Javier Perez" <""highsoft\"@"> escribió en el mensaje
news:%
Hola, gente del foro, le consulto respecto al siguiente problema que


tengo:
Quiero formatear la salida de un SELECT para que reconozca los ceros a
izquierda.
por ejemplo: campo1 tiene el valor 123 y campo2 tiene el valor 789

yo realizo

SELECT campo1 & '/' & campo2
y el resultado es:
123/789

yo quisiera que el resultado sea:
000123/0789

es posible esto realizarlo en SQL en el mismo Store Procedure?

Estuve leyendo otros threads donde Maxi aconseja que esto se realice en
el cliente ya que estaria mas estandar, opino lo mismo, pero seria
tecnicamente realizarlo en SQL Server? (aunque sea no aconsejable).

Gracias por la ayuda
Atentamente

Javier Perez


Respuesta Responder a este mensaje
#2 Maxi
24/05/2005 - 17:31 | Informe spam
Hola Javier, mi opinion es muy discutible ;) pero en sql se puede hacer sin
problemas.

Primero deberiamos definir el tamaño del campo y ahi asignamos,veamos un
ejemplito:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '/456'

SELECT REPLICATE('0',(10 - LEN(@CAMPO1 + @CAMPO2))) + @CAMPO1 + @CAMPO2

De todas maneras esto no me gusta porque si otro cliente quiere en lugar de
10 usar 15 vas a tener que cambiar el Store :(



Salu2
Maxi


"Javier Perez" <""highsoft\"@"> escribió en el mensaje
news:%
Hola, gente del foro, le consulto respecto al siguiente problema que
tengo:
Quiero formatear la salida de un SELECT para que reconozca los ceros a
izquierda.
por ejemplo: campo1 tiene el valor 123 y campo2 tiene el valor 789

yo realizo

SELECT campo1 & '/' & campo2
y el resultado es:
123/789

yo quisiera que el resultado sea:
000123/0789

es posible esto realizarlo en SQL en el mismo Store Procedure?

Estuve leyendo otros threads donde Maxi aconseja que esto se realice en el
cliente ya que estaria mas estandar, opino lo mismo, pero seria
tecnicamente realizarlo en SQL Server? (aunque sea no aconsejable).

Gracias por la ayuda
Atentamente

Javier Perez


Respuesta Responder a este mensaje
#3 Javier Perez
24/05/2005 - 17:43 | Informe spam
Gracias por tu tiempo y tu respuesta, te comento que segui buscando
funciones en los BOL y se me ocurrio esta:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '456'

SELECT right('00000' & @CAMPO1 , 5) & '/' right('0000000000' &
@CAMPO1, 10)


La salida seria: 00123/0000000456.

Creo que funcion, pero vos a tratar de seguir tu consejo de realizar
estas operaciones en el cliente, para mi caso Clarion 6.1.

Atentamente

Javier Perez



Maxi wrote:
Hola Javier, mi opinion es muy discutible ;) pero en sql se puede hacer sin
problemas.

Primero deberiamos definir el tamaño del campo y ahi asignamos,veamos un
ejemplito:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '/456'

SELECT REPLICATE('0',(10 - LEN(@CAMPO1 + @CAMPO2))) + @CAMPO1 + @CAMPO2

De todas maneras esto no me gusta porque si otro cliente quiere en lugar de
10 usar 15 vas a tener que cambiar el Store :(


Respuesta Responder a este mensaje
#4 Maxi
24/05/2005 - 17:50 | Informe spam
Hola, ojo con tu codigo porque estas poniendo ceros de forma fija, que
pasara cuando es 1234/456?


Salu2
Maxi


"Javier Perez" <""highsoft\"@"> escribió en el mensaje
news:
Gracias por tu tiempo y tu respuesta, te comento que segui buscando
funciones en los BOL y se me ocurrio esta:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '456'

SELECT right('00000' & @CAMPO1 , 5) & '/' right('0000000000' & @CAMPO1,
10)


La salida seria: 00123/0000000456.

Creo que funcion, pero vos a tratar de seguir tu consejo de realizar estas
operaciones en el cliente, para mi caso Clarion 6.1.

Atentamente

Javier Perez



Maxi wrote:
Hola Javier, mi opinion es muy discutible ;) pero en sql se puede hacer
sin problemas.

Primero deberiamos definir el tamaño del campo y ahi asignamos,veamos un
ejemplito:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '/456'

SELECT REPLICATE('0',(10 - LEN(@CAMPO1 + @CAMPO2))) + @CAMPO1 + @CAMPO2

De todas maneras esto no me gusta porque si otro cliente quiere en lugar
de 10 usar 15 vas a tener que cambiar el Store :(

Respuesta Responder a este mensaje
#5 Alejandro Mesa
24/05/2005 - 17:58 | Informe spam
Javier,

En t-sql, el operador de concatenación es "+" y no "&".


AMB

"Javier Perez" <""highsoft"@" wrote:

Gracias por tu tiempo y tu respuesta, te comento que segui buscando
funciones en los BOL y se me ocurrio esta:

DECLARE @CAMPO1 VARCHAR(5)
DECLARE @CAMPO2 VARCHAR(10)

SET @CAMPO1 = '123'
SET @CAMPO2 = '456'

SELECT right('00000' & @CAMPO1 , 5) & '/' right('0000000000' &
@CAMPO1, 10)


La salida seria: 00123/0000000456.

Creo que funcion, pero vos a tratar de seguir tu consejo de realizar
estas operaciones en el cliente, para mi caso Clarion 6.1.

Atentamente

Javier Perez



Maxi wrote:
> Hola Javier, mi opinion es muy discutible ;) pero en sql se puede hacer sin
> problemas.
>
> Primero deberiamos definir el tamaño del campo y ahi asignamos,veamos un
> ejemplito:
>
> DECLARE @CAMPO1 VARCHAR(5)
> DECLARE @CAMPO2 VARCHAR(10)
>
> SET @CAMPO1 = '123'
> SET @CAMPO2 = '/456'
>
> SELECT REPLICATE('0',(10 - LEN(@CAMPO1 + @CAMPO2))) + @CAMPO1 + @CAMPO2
>
> De todas maneras esto no me gusta porque si otro cliente quiere en lugar de
> 10 usar 15 vas a tener que cambiar el Store :(
>
>

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida