نوشته شده توسط
حمیدرضاصادقیان
این دستور داره میگه که اگه پارامتر بهش ارسال شد ، همون مقدار رو بیار اگر نشد کل رکوردهارو بیار . یعنی اگه 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 باشه همچین مشکلی به وجود میاد
با تشکر
ممنون میشم که کمک کنید. خیلی روی اعصابمه