PDA

View Full Version : جستجوی فیلد های خالی در جدول



duji6967
جمعه 17 آبان 1392, 00:36 صبح
سلام

من یه جدول دارم که توش دوتا ستون Name و ID داره که ID عددی است که از یک شروع می شه و به ازای وارد کردن هر نام یک عدد به آن اضافه می شه.

من100 تا Name در جدول وارد کردم و در طول اجرای برنامه پیش می آد که مثلا Name و ID شماره 50 رو پاک می کنم، حالا سوال اینجاست که بهترین راهی که بتونم کاری کنم که برای ورود نام جدید ID 50 رو که پاک شده رو به اون نام تخصیص بده نه ID 101 رو؟ به عبارت دیگه اول بگرده دنبال ID هایی که حذف شده باشن در غیر این صورت ID جدید اختصاص بده

حمیدرضاصادقیان
جمعه 17 آبان 1392, 08:21 صبح
با سلام.
لطفا قبل از پرسش سوال ، جستجو کنید.
این مساله ای که شما مطرح کردین به اسم Gaps به عنوان یک چالش در T-SQL مطرح بوده است و راهکارهای مختلفی برای اون ارائه شده است. در زیر یک نمونه از اون رو میتونید ببینید.
اینجا (http://barnamenevis.org/showthread.php?240576-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%B1%D8%A7%D9%87-%D8%AD%D9%84-%D9%87%D8%A7%DB%8C-%D9%85%D8%B3%D8%A7%D9%84%D9%87-%D9%85%D8%B9%D8%B1%D9%88%D9%81-Gaps&highlight=gap) رو ببینید.
اگر در گوگل هم جستجو کنید نتایج مختلفی رو خواهید دید.

محمد سلیم آبادی
دوشنبه 27 آبان 1392, 08:57 صبح
بله این مساله مربوط به Gap هست ولی با اون چالش متفاوت هست در چالش موضوع شروع و پایان (range) مقادیر از دست رفته است.
در این مساله که بسیار ساده تر هست کاربر اولین عددی که جا افتاده رو نیاز داره که با کوئری ساده ی زیر به جواب می رسه


SELECT MIN(value + 1)
FROM table_name
WHERE value + 1 NOT IN
(SELECT value
FROM table_name);