PDA

View Full Version : سوال: اگر داده ای که در شرط کوئری استفاده میشه ممکن باشه null باشه چطور چک کنم



zhr.rezae66i
چهارشنبه 25 اردیبهشت 1392, 11:38 صبح
سلام من کوئری زیر رو نیاز دارم
if @Type1='ALL' select * from ReadTxt where Org=@org
ممکنه مقادیر @org گاهی نال باشه و اگه نال باشه نباید در این شرط ها قید بشه
فقط موقعی باید در شرط استفاده بشه که مقدارش غیر نال باشه
چطور پیاده سازیش کنم؟

ahmad156
چهارشنبه 25 اردیبهشت 1392, 12:04 عصر
شما ابتدا query رو به صورت زیر مقداردهی کنین

select * from ReadTxt where 1=1

سپس به ازای هر فیلد با دستور if چک کنین که مقدار مخالف null باشه اگر بود شرط رو به query اضافه کنین

Dr.Bronx
چهارشنبه 25 اردیبهشت 1392, 13:08 عصر
یک مدل شرط خوب داریم توی vb که به این صورت هست

iif(condition, true part, false part)

خوب حالا مثلا برای کار شما میشه اینجوری کرد

select * from table where id=@id and date1=@date1 iif(@date2<>""," and date2=@date2 " , "" ) and j=2

موفق باشید ./

saeed_sho
چهارشنبه 25 اردیبهشت 1392, 16:47 عصر
اینو تست کنید
select * from table1 where field1 = isnull(@p1, field1)

zhr.rezae66i
یک شنبه 29 اردیبهشت 1392, 19:19 عصر
ممنون، این کد نهایتا برای من جواب داد قرار میدم. البته isnull هم میشد.

if @Type1='ALL' select * from ReadTxt where Org=Coalesce(@org,Org)