PDA

View Full Version : اعداد جا مانده در يك فيلد



mustafa13
پنج شنبه 20 آبان 1389, 14:09 عصر
سلام
دوستان اين امكان هست كه در يك فيلد عددي به صورت مرتب از 1 تا n مي باشد حال در اين ميان اعداد حذف شده باشد ما بخواهيم اعداد جا مانده در اين فيلد را بدانيم با چه دستوري اين امكان را داره
باتشكر

Reza_Yarahmadi
پنج شنبه 20 آبان 1389, 18:15 عصر
براي اين كار ميتونيد از كرسر استفاده كنيد.
CREATE TABLE #Temp(
[id] [bigint] NULL,
)
Declare @Id bigint, @i bigint
Set @i = 1
Declare src Cursor
For
Select Id From tbl Order By Id

Open src
While (1 = 1)
Begin
Fetch Next From src Into @Id
If @@Fetch_Status <> 0 Break
If @Id <> @i
While @i <> @Id
Begin
Insert Into #Temp Values (@i)
Set @i = @i + 1
End
Set @i = @i + 1
End
Close src
Deallocate src
Select * From #Temp
Drop Table #Temp
توي كد بالا فرض شده اعداد از 1 شروع شده اند.

حمیدرضاصادقیان
پنج شنبه 20 آبان 1389, 22:00 عصر
سلام.همچنین اگر از نسخه 2005 به بالا استفاده میکنید میتونید با استفاده ا زCTe اعداد مورد نظر رو ایجاد کرده و با استفاده از یک left outer join اعداد جاافتاده رو پیدا کنید.
موفق باشید