Buscar huecos libres en secuencia de numeros.

21/01/2009 - 11:24 por Tomas | Informe spam
Hola a todos.

Tengo necesidad de encontrar huecos en una numeración a partir de un numero
dado.

Por ejemplo este código me dice el primer hueco libre partiendo desde el
inicio de la tabla:

SELECT TOP 1 Codigo + 1 As PrimerHueco
FROM dbo.Tabla T
WHERE NOT EXISTS( SELECT 1 FROM dbo.Tabla WHERE (Codigo = T.Codigo + 1))

Pero yo necesito conocer el primer hueco libre, por ejemplo a partir del
código 1000.

¿Alguna idea de cómo lo puedo solucionar?.

Gracias por anticipado.

Gracias.
Tomás.

Ejemplo de tabla:

CREATE TABLE [Tabla] (
[Codigo] [int] NOT NULL ,
CONSTRAINT [PK_Tabla] PRIMARY KEY CLUSTERED ( Codigo ) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO dbo.Tabla(Codigo) VALUES(1)
INSERT INTO dbo.Tabla(Codigo) VALUES(3)
INSERT INTO dbo.Tabla(Codigo) VALUES(6)
INSERT INTO dbo.Tabla(Codigo) VALUES(10)
INSERT INTO dbo.Tabla(Codigo) VALUES(100)
INSERT INTO dbo.Tabla(Codigo) VALUES(1000)
INSERT INTO dbo.Tabla(Codigo) VALUES(2000)
INSERT INTO dbo.Tabla(Codigo) VALUES(9999)
 

Leer las respuestas

#1 Carlos Sacristan
21/01/2009 - 14:02 | Informe spam
Añade la condición en el WHERE...

SELECT TOP 1 Codigo + 1 As PrimerHueco
FROM dbo.Tabla T
WHERE NOT EXISTS( SELECT 1 FROM dbo.Tabla WHERE (Codigo = T.Codigo + 1)) AND
codigo >= 1000




Un saludo
-
www.navento.com
Servicios de Localización GPS


"Tomas" wrote:

Hola a todos.

Tengo necesidad de encontrar huecos en una numeración a partir de un numero
dado.

Por ejemplo este código me dice el primer hueco libre partiendo desde el
inicio de la tabla:

SELECT TOP 1 Codigo + 1 As PrimerHueco
FROM dbo.Tabla T
WHERE NOT EXISTS( SELECT 1 FROM dbo.Tabla WHERE (Codigo = T.Codigo + 1))

Pero yo necesito conocer el primer hueco libre, por ejemplo a partir del
código 1000.

¿Alguna idea de cómo lo puedo solucionar?.

Gracias por anticipado.

Gracias.
Tomás.

Ejemplo de tabla:

CREATE TABLE [Tabla] (
[Codigo] [int] NOT NULL ,
CONSTRAINT [PK_Tabla] PRIMARY KEY CLUSTERED ( Codigo ) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO dbo.Tabla(Codigo) VALUES(1)
INSERT INTO dbo.Tabla(Codigo) VALUES(3)
INSERT INTO dbo.Tabla(Codigo) VALUES(6)
INSERT INTO dbo.Tabla(Codigo) VALUES(10)
INSERT INTO dbo.Tabla(Codigo) VALUES(100)
INSERT INTO dbo.Tabla(Codigo) VALUES(1000)
INSERT INTO dbo.Tabla(Codigo) VALUES(2000)
INSERT INTO dbo.Tabla(Codigo) VALUES(9999)



Preguntas similares