ورود

View Full Version : مبتدی: انتخاب ردیف هایی از یک جدول که مقدار یک ستون از آنها متعلق به یک مجموعه باشد



ahhashemi
سه شنبه 19 مرداد 1389, 11:54 صبح
با سلام:
جدول بنده (در اکسس) دارای ستونی از نوع عددی می باشد. چگونه می توانم تمام ردیف هایی که مقدار ستون مذکورشان یکی از اعضای مجموعه زیر باشد را انتخاب نمایم؟ اگر تعداد اعضای مجموعه کم باشد می توان آنها را یک به یک در دستور IN لحاظ نمود ولی وقتی اندازه مجموعه بسیار بزرگ باشد (همانند مثال زیر) چگونه می توان این امر را انجام داد؟
مجموعه : {1و5و15و20و000 و 500}

با تشکر فراوان

محمد سلیم آبادی
سه شنبه 19 مرداد 1389, 12:38 عصر
با سلام:
جدول بنده (در اکسس) دارای ستونی از نوع عددی می باشد. چگونه می توانم تمام ردیف هایی که مقدار ستون مذکورشان یکی از اعضای مجموعه زیر باشد را انتخاب نمایم؟ اگر تعداد اعضای مجموعه کم باشد می توان آنها را یک به یک در دستور IN لحاظ نمود ولی وقتی اندازه مجموعه بسیار بزرگ باشد (همانند مثال زیر) چگونه می توان این امر را انجام داد؟
مجموعه : {1و5و15و20و000 و 500}


با تشکر فراوان


سلام،
از اینکه گفتید اگر تعداد اعضای مجموعه کم باشد می توان یک به یک در دستور IN لحاظ نمود این روش است:

SELECT * FROM t WHERE col IN (1)
OR col IN (5)
OR col IN (15)
OR ....
خب اگر این روش باشه که استفاده ی نادرستی از IN انجام دادین. و در این مورد فرقی هم نداشت که از IN استفاده بشه یا =

عناصری که داخل پرانتز IN نوشته میشه می تونند با کاما از هم تفکیک بشن یا حتی یک subquery باشه. یعنی:

SELECT * FROM table
WHERE col IN (5,0,500,...)

ahhashemi
سه شنبه 19 مرداد 1389, 23:27 عصر
با عرض سلام خدمت دوست عزیز:

منظور بنده از آنکه اگر تعداد اعضای مجموعه محدود باشد می توان آنها را یکایک در دستور IN قرار داد، همان کاری است که جنابعالی اشاره فرمودید.یعنی:


SELECT * FROM table
WHERE col IN (5,0,500,...) اما همانطور که مشخص است این راه برای مواقعی راهگشا است که تعداد اعضا محدود باشد ولی برای مجموعه داده شده در سوال که مضارب عدد 5 از 1 تا 500 می باشند (مجموعه ای بزرگ) از این روش نمی توان سود جست. خیلی خوشحال می شوم اگر بنده رابیشتر راهنمایی بفرمائید.

محمد سلیم آبادی
سه شنبه 19 مرداد 1389, 23:31 عصر
خیلی ساده است:

SELECT *
FROM table_name
WHERE column_name BETWEEN 1 AND 500
AND column_name % 5 = 0;

ahhashemi
پنج شنبه 21 مرداد 1389, 12:03 عصر
با تشکر فراوان از استاد محترم

ضمن تبریک فرارسیدن ماه مبارک رمضان، از اینکه وقت گذاشتید و به سوال بنده پاسخ دادید خیلی ممنونم. مشکل بنده با راهنمایی جنابعالی رفع شد. سپاسگزارم.