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

نام تاپیک: مشکل جستجو در تیبل توسط دستور select

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    بهشهر
    پست
    307

    مشکل جستجو در تیبل توسط دستور select

    با سلام
    من از به عنوان مثال از دستور زیر برای جستجو استفاده می کنیم.

    select nam from master where kod=1


    حال می خواهم کاری کنم که توی فیلد آدرس هم جستجو کنم. به صورتی که زمانی که پارامتر ورودی null باشه جستجو توی تمام رکورد ها انجام بشه

    select nam from master where kod=1 and (address = isnull(@search,address))


    در حالت کلی با این مدل دستور ها هیچ مشکلی ندارم. مشکل از اون جایی شروع میشه که اگر فیلد های address من توی table هم null باشه، اون رکورد ها رو برای جستجو در زمانی که متغییر @search من هم null باشه نمایش نمی ده.

    به عبارت دیگر، اگر دستور رو به صورت زیر بنویسم

    select nam from master where kod=1 and (family = isnull(@search_family,family))


    هیچ مشکلی ندارم. چرا که تمامی فیلد های family من دارای متغییر هست. واگر @search_family من هم null باشه، باز هم تمامی رکورد های من و نشون میده

    ولی توی فیلد آدرس، به دلیلی اینکه همه رکورد ها شامل مقادیر addressنمی باشند. زمانی که @search برابر null باشه، تمامی رکورد ها نمایش داده نمیشه.


    چه راهی برای حل این مشکل پیشنهاد می کنید.
    خیلی خیلی ممنون

  2. #2

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    سلام
    از این منطق استفاده کنید.

    Select * from Table1
    wehre Field1=Coalesce(@PAram1,Feild1)

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    بهشهر
    پست
    307

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    نقل قول نوشته شده توسط حمیدرضاصادقیان مشاهده تاپیک
    سلام
    از این منطق استفاده کنید.

    Select * from Table1
    wehre Field1=Coalesce(@PAram1,Feild1)
    سلام
    متسفانه باز هم نشد. دلیل این هست که کل رکورد های درون Field1 برابر null هست.
    با استفاده از این دستور هم فقط رکورد هایی که مقدار داشته باشند و نشون میده.
    چه راهی پشنهاد می کنید؟؟

  4. #4

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    این دستور داره میگه که اگه پارامتر بهش ارسال شد ، همون مقدار رو بیار اگر نشد کل رکوردهارو بیار . یعنی اگه null به این پارامتر پاس بدین کل رکوردهارو میاره.
    کار این تابع این هست که نگاه میکنه اولین پارامتر اگه مقدار داشته باشه اونو میذاره اگه نه مقدار دوم رو میذاره.
    کدی که نوشتین رو بذارید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    بهشهر
    پست
    307

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    نقل قول نوشته شده توسط حمیدرضاصادقیان مشاهده تاپیک
    این دستور داره میگه که اگه پارامتر بهش ارسال شد ، همون مقدار رو بیار اگر نشد کل رکوردهارو بیار . یعنی اگه null به این پارامتر پاس بدین کل رکوردهارو میاره.
    کار این تابع این هست که نگاه میکنه اولین پارامتر اگه مقدار داشته باشه اونو میذاره اگه نه مقدار دوم رو میذاره.
    کدی که نوشتین رو بذارید
    سلام

    این هم از کد :

                  SELECT      sanad_master.serial, sanad_master.tarikh, 
    sanad_master.ta_madrak, sanad_master.ser_madrak, sanad_master.bes, sanad_master.bed, sanad_master.moghayerat, sanad_master.exp0
    FROM bank LEFT OUTER JOIN
    sanad_master ON bank.tafsili2 = sanad_master.tafsili2 AND bank.tafsili1 = sanad_master.tafsili1 AND bank.moin = sanad_master.moin AND
    bank.kol = sanad_master.kol AND bank.group_hesab = sanad_master.group_hesab
    WHERE
    (sanad_master.exp0= Coalesce(@exp0,sanad_master.exp0))
    order by sanad_master.tarikh desc


    تصویر زیر زمانی هست که دستور where رو حذف می کنم. و نتیجه رو نشون میده


    این تصویر مربوط به زمانی هست که دستور where رو اضافه می کنم

    این و هم بگم که از توی خود نرم افزار هم هیمن جوریه. ولی برای کمک کردن راحت شما دستور رو توی SQL نشون دادم. اگر فیلد exp0 رو روی توی تیبل مقدار خاصی بهش بدم، شرط به درستی کار میکنه. ولی اگر null باشه همچین مشکلی به وجود میاد
    با تشکر
    ممنون میشم که کمک کنید. خیلی روی اعصابمه

  6. #6

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    اینجوری بنویسید
    where Sanad_master.exp0=@Exp0 or @Exp0 is null

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    بهشهر
    پست
    307

    نقل قول: مشکل جستجو در تیبل توسط دستور select

    خیلی خیلی ممنون
    حل شد

تاپیک های مشابه

  1. سوال: مشکل در نوشتن یک دستور select در C#‎
    نوشته شده توسط esz_sa در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 20 دی 1393, 12:40 عصر
  2. مشکل در استفاده از دستور select..case
    نوشته شده توسط javady_joon در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: چهارشنبه 23 مهر 1393, 12:38 عصر
  3. سوال: مشکل جستجو در بانک پارادکس با دستور فیلتر
    نوشته شده توسط behrooz585 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: جمعه 20 مرداد 1391, 09:38 صبح
  4. سوال: مشکل در استفاده از دستور select و گرایدویو
    نوشته شده توسط a_123123123123 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 20 تیر 1390, 15:34 عصر
  5. سوال: مشکل جستجو در دیتابیس توسط وی بی دات نت
    نوشته شده توسط seyed ehsan در بخش VB.NET
    پاسخ: 7
    آخرین پست: یک شنبه 14 شهریور 1389, 09:42 صبح

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

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