نمایش نتایج 1 تا 3 از 3

نام تاپیک: دریافت شماره حساب آزاد از بین شماره حساب های موجود

  1. #1
    کاربر دائمی آواتار M.T.P
    تاریخ عضویت
    دی 1388
    محل زندگی
    Planet Earth
    پست
    1,769

    دریافت شماره حساب آزاد از بین شماره حساب های موجود

    با سلام
    دوستان ارجمند :
    جدولی دارم که مشخصات افراد زیادی که هرکدوم یک شماره حساب اختصاصی دارند رو ذخیره میکنه.
    فرض کنیم از 1 تا 1000 ما رکورد ثبت شده داریم در حالی که حساب شماره 200 رو به دلایلی حذف کردم ، برای معرفی یک حساب جدید میخوام قبل از اینکه 1001 باشه با یک دستور فیلد شماره حساب جستجو بشه و شماره حساب آزاد یعنی 200 رو پیشنهاد کنه ، البته با جستجوی رکورد به رکورد می تونم این کار رو انجام بدم اما آیا دستور sql به این منظور هست؟
    با تشکر.

  2. #2

    نقل قول: دریافت شماره حساب آزاد از بین شماره حساب های موجود

    چندین روش برای این کار وجود داره ، یکی از این روشها بصورت زیر میشه
    Declare @MaxId int
    Select @MaxId = Max(id) From TableName

    ;With res(id) as(
    Select 1 as id
    Union All
    Select id+1 as id
    From res
    Where id < @MaxId
    )
    Select Id
    From res
    Where Id NOT IN (Select Id From TableName)

  3. #3

    نقل قول: دریافت شماره حساب آزاد از بین شماره حساب های موجود

    فرض کنید اعداد زیر را داریم:
    1و2و3و4و6
    همانطور که مشاهده میشه عدد 5 در لیست فوق وجود ندارد و به اصطلاح miss شده و یک فضای هرز (gap) را تولید کرده.
    کوئری زیر این عدد را پیدا میکنه:
     

    SELECT MIN(id)
    FROM Table AS T
    WHERE NOT EXISTS
    (SELECT *
    FROM Table
    WHERE id = T.id + 1);
    وبلاگ من (Advanced SQL Querying)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •