سلام.
من یه جدول در اس کیو ال سرور دارم و یه سری اطلاعات مربوط به تراکنشهای یک سیستم رو ذخیره میکنم و یک فیلد از نوع کاراکتر رو در این جدول در نظر گرفتم که مشخص میکنه که این تراکنش ورودیه، خروجیه، امانیه یا گزینه های دیگه. حالا میخوام در هر حالت مقدار فارسی مناسب رو برگردونم نه خود فیلد رو. با دستور زیر درست جواب میده
select KID,PName,case when WType='ib' then N'ورودی' else N'خروجی' end from InOutInfo where ID>1
اما مشکل اینه که من نمیخوام شرط دستورم ثابت باشه. یعنی شرط در هنگام اجرا توسط کاربر مشخص بشه.واسه همین اومدم یک استور پروسیجر گذاشتم و شرط رو به عنوان پارامتر ورودی گرفتم و کوئری رو هم با توجه به این روش توی یک متغیر ریختم تا آخر اجراش کنم.
declare @q nvarchar(100)
set @q='select KID,PName,case when WType=''ib'' then N''ورودی'' else N''خروجی'' end from InOutInfo'+@cond
exec(@q)
اما موقع اجرا برای من ؟؟؟؟ برمیگردونه در حالیکه من هم نوع متغیر رو یونیکد در نظر گرفتم و هم تو دستور از کاراکتر "ان" استفاده میکنم. جستجو کردم و جیزی نیافتم. کسی با این مشکل برنخورده تا حالا؟