Rellenar huecos.

09/06/2004 - 17:29 por Jose Antonio | Informe spam
Tengo una tabla en la que una de sus columnas es un numero de orden que se
va añadiendo cuando se inserta una fila con un MAX(Orden)+1.

Si no se borra ninguna fila no hay ningun problema, pero si durante un
determinado tiempo se borran filas, se van quedando huecos y los numeros de
orden ya no estan todos seguidos.

¿Como se podrian renumerar la columna orden de las filas, empezando por 1
para que todas las filas tengan su numero de orden correlativo?.


Saludos
 

Leer las respuestas

#1 Javier Loria
09/06/2004 - 18:27 | Informe spam
Hola Jose:
Si tienes una Tabla con numeros es muy facil, asumamos que son Facturas:
=SELECT MIN(Numero)
FROM Facturas
LEFT JOIN Numeros
ON FacturaNum=Numero
WHERE FacturaNum IS NULL
= Si no quieres tener esta tabla, es poco mas complejo y lento pero puede
ser
=SELECT MIN(F1.NumFactura)+1 AS Numero
FROM Facturas F1
LEFT JOIN Facturas F2
ON F1.NumFacturaò.Numfactura-1
WHERE F2.Numfactura IS NULL
= Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Jose Antonio escribio:
Tengo una tabla en la que una de sus columnas es un numero de orden
que se va añadiendo cuando se inserta una fila con un MAX(Orden)+1.

Si no se borra ninguna fila no hay ningun problema, pero si durante un
determinado tiempo se borran filas, se van quedando huecos y los
numeros de orden ya no estan todos seguidos.

¿Como se podrian renumerar la columna orden de las filas, empezando
por 1 para que todas las filas tengan su numero de orden correlativo?.


Saludos

Preguntas similares