PDA

View Full Version : سوال: کمک در مورد دستور Case



darkprince
پنج شنبه 13 اسفند 1388, 07:09 صبح
با سلام خدمت دوستان، عکسی که در زیر گذاشتم فکر کنم به توضیحاتم کمک کنه، من تو جدولم دو تا فیلد دارم با نام Type1 و Type2 با نوع tinyint که مقادیر بیرون آکولادها درون فیلد Type1 و مقادیر درون آکولادها درون فیلد Type2 قرار می گیرند، همونطور که مشاهده میکنید مقدار Type2 به مقدار Type1 بستگی داره، حالا تو سرچ ملک من میخوام تو دیتا گرید ویو مقادیر جستجو شده رو نشون بدم و مطمئنا کاربر از این 0 و 1 ها چیزی نمیفهمه من میخوام تو دیتا گرید ویو اگه مقدار Type1 صفر بود نشون بده مسکونی و مقدار ستون بعدی باید با توجه به مقدار ستون قبلی قرار بگیره که مثلا به جای آپارتمانی چاپ نکنه زرارعی. آیا میشه اینو تو SQL با دستور Case یا یه چیزی مثل اون پیاده سازی کرد؟ ممنون میشم اگه کمک کنید.

http://www.uploadimage.ws/out.php/i5817_untitled2.JPG

AminSobati
پنج شنبه 13 اسفند 1388, 13:08 عصر
سلام دوست عزیزم،
من حدس میزنم شما به جای اینکه جداول پایه طراحی کنید که تایپ ها رو نگهداری میکنه (و شما با Join میتونین مقادیر معنی دار رو جایگزین کنین)، بصورت نادرست Case رو انتخاب کردین

محمد سلیم آبادی
پنج شنبه 13 اسفند 1388, 13:17 عصر
سلام دوست عزیزم،
من حدس میزنم شما به جای اینکه جداول پایه طراحی کنید که تایپ ها رو نگهداری میکنه (و شما با Join میتونین مقادیر معنی دار رو جایگزین کنین)، بصورت نادرست Case رو انتخاب کردین

البته با کمک یک عبارت جدولی مثل cte یا derive table هم می تونن با join به جای case کارشون رو راه بندازن. ولی همانطور که گفتین به نظر میرسه در طراحی جداول مشکلی وجود داره.

AminSobati
پنج شنبه 13 اسفند 1388, 13:27 عصر
درسته، CTE و امثالهم میتونن کمک کنن، ولی بعدا اگر بخوان یک تایپ جدید تعریف کنن، باید هر جایی که این Query استفاده شده ویرایش کنن.

darkprince
پنج شنبه 13 اسفند 1388, 18:11 عصر
سلام دوستان ممنون از توجهی که نشون دادین، میشه یک مقدار بیشتر توضیح بدید و نحوه کار با این دستوراتی که فرمودید رو بهم نشون بدید؟

AminSobati
جمعه 14 اسفند 1388, 01:55 صبح
در این تالار راجع به Join چند پست وجود داره، لطفا جستجو کنید