Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Justificar texto a la derecha en SQL Server

Estas en el tema de Justificar texto a la derecha en SQL Server en el foro de SQL Server en Foros del Web. Saludos, acudo a ustedes con una duda, tengo el siguiente problema requiero que cuando realice una consulta suceda lo siguiente tengo una tabla como la ...
  #1 (permalink)  
Antiguo 31/01/2012, 17:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 61
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Justificar texto a la derecha en SQL Server

Saludos, acudo a ustedes con una duda, tengo el siguiente problema

requiero que cuando realice una consulta suceda lo siguiente

tengo una tabla como la siguiente
________________
| Ordenes |
| orden | importe|
--------------------------
| 1 | 10 |
| 2 | 15 |
| 3 | 22 |
| 4 | 35 |
--------------------------

al hacer un select a todo, sale...:

|1 |10 |
|2 |15 |
|3 |22 |
|4 |35 |

Pero nececito que el importe lo justifique a la derecha, para que la salida sea:

|1 | 10|
|2 | 15|
|3 | 22|
|4 | 35|

y otra similar que agrege ceros

| 1|000010|
| 2|000015|
| 3|000022|
| 4|000035|

Todo lo necesito sobre el mismo query, conocen alguna funcion? o alguna otra? idea

Gracias por su ayuda saludos

Nota: Es una es una especificación bancaria
  #2 (permalink)  
Antiguo 01/02/2012, 10:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Justificar texto a la derecha en SQL Server

como justificar texto a la derecha eso no lo entiendo?, lo de los 0's puede ser

select '0000' + convert(varchar(20),numero) as completo from tabla
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/02/2012, 12:41
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Justificar texto a la derecha en SQL Server

Libras

Excelente propuesta, pero cuando las cantidades empiecen a cambiar (mas de tres caracteres), ya no se vera igual.

Creo que dicho "formateo" lo debe dar en su parte "cliente".

Eso creo yo, aunque si hay por ahi un truco en T-SQL para hacer dicho efecto.
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 01/02/2012, 12:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Justificar texto a la derecha en SQL Server

Cita:
Iniciado por iislas Ver Mensaje
Libras

Excelente propuesta, pero cuando las cantidades empiecen a cambiar (mas de tres caracteres), ya no se vera igual.

Creo que dicho "formateo" lo debe dar en su parte "cliente".

Eso creo yo, aunque si hay por ahi un truco en T-SQL para hacer dicho efecto.
jejeje fue una respuesta rapida pero como bien dices iislas para que aparezca en todos los numeros los 0's de mas es necesario hacer un poco mas de codigo digamos podria ser un

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. num INT
  4. )
  5.  
  6. INSERT INTO #temp VALUES (1)
  7. INSERT INTO #temp VALUES (22)
  8. INSERT INTO #temp VALUES (333)
  9. INSERT INTO #temp VALUES (4444)
  10. INSERT INTO #temp VALUES (55555)
  11.  
  12.     SELECT
  13.     CASE WHEN len(CONVERT(VARCHAR(20),num))=1 THEN '0000' + CONVERT(VARCHAR(20),num)
  14.     WHEN len(CONVERT(VARCHAR(20),num))=2 THEN '000' + CONVERT(VARCHAR(20),num)
  15.     WHEN len(CONVERT(VARCHAR(20),num))=3 THEN '00' + CONVERT(VARCHAR(20),num)
  16.     WHEN len(CONVERT(VARCHAR(20),num))=4 THEN '0' + CONVERT(VARCHAR(20),num)
  17.     ELSE CONVERT(VARCHAR(20),num) END AS numero FROM #temp

jejeje algo sencillo :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 01/02/2012, 13:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Justificar texto a la derecha en SQL Server

De acuerdo, aunque deberia hacerse el "formateo" en su cliente.

Saludos
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 01/02/2012, 13:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Justificar texto a la derecha en SQL Server

Eso no lo niego mi estimado iislas :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 01/02/2012, 13:41
 
Fecha de Ingreso: octubre-2008
Mensajes: 61
Antigüedad: 15 años, 6 meses
Puntos: 0
Sonrisa Respuesta: Justificar texto a la derecha en SQL Server

Que tal, me gustaron sus respuestas y me ayudaron a encontrar una solución de una sola linea se las comparto para futuras situaciones:

para efectos de este problema todo se trato como cadena no como numero de la siguiente manera:

SUBSTRING('000000', 1, 6 -len(T.importe))) + replace(SUM(T.importe),',','')
Donde la cadena '000000' es por decirlo de alguna manera mi mascara
1 la posicion inicial que siempre será 1
el 6 es de la misma logitud que mi mascara
y -len(T.importe) los caracteres que hay que remover para colocar la cantidad
y + replace(T.importe,',','') es para poner la cantidad como tal pero sin comas

Agradezco la ayuda mil gracias, saludos.
  #8 (permalink)  
Antiguo 01/02/2012, 13:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Justificar texto a la derecha en SQL Server

Cristo

Hay cosas que los lenguajes de la capa "cliente" son mucho mas eficientes para realizar, aunque como dije, hay trucos en T-SQL que los puede hacer, aunque no se lo mas recomendable.
__________________
MCTS Isaias Islas

Etiquetas: derecha, justificar, select, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.