Non mi viene in mente niente di meglio che un
accrocchio con la funzione ROW_NUMBER()
( pero qualcosa di meglio dovrebbe esserci )
________________________________________________
Prova cosi:
-- Crea un nuovo DB
CREATE DATABASE Rfff;
GO
-- Uso il DB appena creato
USE Rfff;
GO
-- Creo una tabella
CREATE TABLE dbo.Tab
(
ID int IDENTITY(1,1) PRIMARY KEY,
Num int NULL,
Nome nvarchar(50) NULL
)
GO
-- inserisco un po di dati
SET IDENTITY_INSERT dbo.Tab ON
INSERT INTO dbo.Tab
(ID, Num, Nome)
VALUES
(452, 3, N'Marco'),
(287, 2, N'Roberta'),
(574, 8, N'Alessia'),
(625, 1, N'Giuseppe'),
(118, 5, N'Antonio'),
(282, 9, N'Marika'),
(941, 7, N'Ursula');
SET IDENTITY_INSERT dbo.Tab OFF
GO
-- Creo una vista con quello che ti interessa
CREATE VIEW [dbo].[hhh]
AS
SELECT
MIN(RoNu) AS Min
FROM
(
SELECT
Num,
ROW_NUMBER() OVER (ORDER BY Num) AS RoNu
FROM
dbo.Tab
) AS Tabx
WHERE
RoNu<>Num
GO
-- Finito nella vista "hhh" cè il primo numero
-- del campo "Num" non utilizzato