سلام به همه دوستان عزیز
من تو درون فیلدها اطلاعات رو به صورت باینری (0و1) ذخیره کردم
میخوام بدونم میتونم هنگام select بیام طوری دستورمو بنویسم که خودش اطلاعات رو برگردونه به حالت اول
سلام به همه دوستان عزیز
من تو درون فیلدها اطلاعات رو به صورت باینری (0و1) ذخیره کردم
میخوام بدونم میتونم هنگام select بیام طوری دستورمو بنویسم که خودش اطلاعات رو برگردونه به حالت اول
سلام.
بله شما میتونید با استفاده از دستور Case در داخل select هر چیزی رو نمایش بدید.
مثال :
select id,case When Typ=0 then 'بدهکار' else 'بستانکار' end as TypeSanad from Table1
سلام اقای صادقیان
نه منظورم این نبود
فرض کنید من یه رشته دارم به صورت 001011101011011 و میخوام مثلا 4 تا 4 تا جداشون کنیم و معادل هرکدومشون رو بزارم
مثلا اگر 0010 بود بزاره A و ..
برای جدا کردن هم از ابتدای این رشته باینری شروع کنه
منظورم این بود
سلام
من اینطور فکر میکنم که احتمالا چیزی نیست که این رشته کد باینری رو بهش بدی و مقدار اولش رو برگردونه ...فرض کنید من یه رشته دارم به صورت 001011101011011 و میخوام مثلا 4 تا 4 تا جداشون کنیم و معادل هرکدومشون رو بزارم
مثلا اگر 0010 بود بزاره A و ..
فکر کنم بهتره یه Function بنویسی که که رشته رو بهش پاس بدی و با فرمتی که میخوای پردازشش کنی...حالا چه توی Sql Server یا ....
من این کار رو دارم انجام میدوم تو ویژوال
میخوام تو sql این اتفاق بیفته حالا با تابع یا هر چیز دیگه ای
فقط میخوام قدرت اینو داشته باشه که وقتی select رو مینویسم بتونه کارهایی که میخوام رو انجام بده و نتیجه رو برگردونه
سلام. شما باید یک تابع بنویسی که ورودیش یک مقدار رشته ای باشه که مقدار فیلدت رو بدی.
در داخل اون یک متغیر تعریف میکنی و طول رشته رو بهش پاس میدی.
در داخل یک حلقه با استفاده از Substring میتونی این رشته رو به صورت 4 رقم 4رقم جدا کرده و خروجی مورد نظر رو در یک رشته دیگه ذخیره کنی.
در نهایت نتیجه خروجی تابع شما میشه مقدار نهایی تولید شده.
Telegram : @SQL_Server
خوب فرض کنید یک تابع نوشتم با نام Dcode که ورودیش یک رشته باینری و خروجیش یک رشته تبدیل شده بود
حالا چطور باید از این تابع داخل select استفاده کنم!!
سلام
اگر decode شما برای موضوع امنیتی است اصلا الگوریتم را سمت SQLServer ننویسید در غیر اینصورت چند روش وجود دارد
1- با استفاده از فیلد محاسباتی
2- با استفاده از تابع مثلا بنام Dc و روش استفاده :
Select X=dbo.dc(FldName),... From T
بله برای امنیت اطلاعات دارم این کار رو میکنم
میخوام بدونم اگر این کار رو طرف sql بنویسم سرعت من بالاتر میره یا نه؟
و آیا میشه این تابع رو داخل برنامه vb نوشت و توی همون vb زمانی که دارم دستور select رو بنویسم اون تابع رو فراخونی کنم.
الان من مجبورم اطلاعات رو داخل گرید بیارم و تک تک سطر و ستون ها رو تبدیل به رشته اصلی کنم، فکر کنم اطلاعات که حجمش زیاد بشه این روش چندان کارا نباشه
سلام
بستگی به Client ها دارد اگر Client ها خوب باشند در سمت Vb سرعت بیشتر است
اگر بانک اکسس بود می شد ولی در بانک SQLServer شما تابع درون زبان برنامه نویسی را نمی توانید به خورد SQLServer دهید
از گرید VB.NET استفاده می کنید ؟
از CLR Integration هم می تونید استفاده کنید.
منظور از خوب بودن سرعت دستگاه هست؟بستگی به Client ها دارد اگر Client ها خوب باشند در سمت Vb سرعت بیشتر است
منظورم این نیست که تابع رو که تو vb نوشتم تو sqlserver فراخونی کنم میخوام تو همون vb یه تابعی رو که نوشتم تو دستور select که تو همون vb هست بدوم، منظورم زمانی هست که با کد دارم به بانک وصل میشماگر بانک اکسس بود می شد ولی در بانک SQLServer شما تابع درون زبان برنامه نویسی را نمی توانید به خورد SQLServer دهید
از گرید برای نمایش استفاده میکنم اما داده هارو قبل از اتصال به گرید توی خود datatable تغییر میدماز گرید VB.NET استفاده می کنید ؟
نمیدونم چی هستاز CLR Integration هم می تونید استفاده کنید.
سلام
بهترین روش همان است که در یک فیلد جدا در DataTable برگشتی مقدار را محاسبه می کنید (پردازش سمت Client و روی Ram در حال انجام است)