SQL Server - Mantener Variable en espacios vacios

 
Vista:

Mantener Variable en espacios vacios

Publicado por rorro (1 intervención) el 28/01/2014 23:29:04
Estimados
Necesito su ayuda con este problema.

tengo 2 columnas con datos.

COLUMNA1 COLUMNA2
RGS232 2836308
FW322
DCF201
RGS233 75424908
FW323
FFS3245
DCF202
RGS234 111966108
FFS3246
DCF203
RGS235 112459908
FW325
FFS3247


Necesito repetir el campo de la columna 2 en los espacios nulos mas abajo hasta que aparesca otro valor en esa columna, este nuevo valor debe repetirse hasta pillar otro valor en la columna asi sucesivamente.


De modo de quedar así:

COLUMNA1 COLUMNA2
RGS232 2836308
FW322 2836308
DCF201 2836308
RGS233 75424908
FW323 75424908
FFS3245 75424908
DCF202 75424908
RGS234 111966108
FFS3246 111966108
DCF203 111966108
RGS235 112459908
FW325 112459908
FFS3247 112459908


De antemano muchas gracias totales.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Mantener Variable en espacios vacios

Publicado por Isaias (4558 intervenciones) el 28/01/2014 23:45:37
¿Solamente esas 2 columnas?

¿Qué pasa con el orden de los registros?

deberías colocarle una columna de tipo IDENTITY y así, podrías trabajar mediante algún cursor para realizar la actualización
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mantener Variable en espacios vacios

Publicado por jsanchezc (17 intervenciones) el 06/02/2014 12:43:14
Como indica Isaias es necesario que tengas controlado un order by.
Puedes hacerlo por el Id de la tabla o por otro campo.

Suponiendo que la tabla se llama TABLAC1C2
Y que el orden lo haces por el campo ID
Esta sería la solución:

select COLUMNA1,isnull(COLUMNA2,(select min(ax.COLUMNA2) from TABLAC1C2 as ax
where ax.ID < TABLAC1C2.ID and isnull(ax.COLUMNA2,'')<>'') ) as COLUMNA2
from TABLAC1C2 order by ID

Fíjate que en el ISNULL hacemos un subquery a la mista tabla por lo que le asinamos un alias,
en este caso ax.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar