View Full Version : عملیات روی فیلد رشته ای در بانک
code_project
جمعه 27 شهریور 1394, 12:56 عصر
سلام دوستان. من توی بانکم یه فیلد رشته ای دارم که توی اون متن های فارسی و انگلیسی و عددی ذخیره شده. حالا میخوام این رشته ها را توی برنامه بخونم و همه را طبق مثال های زیر برعکس کنم. جدا کننده کلمات این رشته ها هم هر کاراکتری میتونه باشه. مثلا / یا ـ یا * و ...
میخوام مثلا 112*01 را تبدیل کنم به 01*112 یا 78-000-7586 را تبدیل کنم به 7586-000-78
mahdi87_gh
جمعه 27 شهریور 1394, 13:33 عصر
شما یه فانکشن تعریف کن که این کار رو انجام بده یعنی یک ورودی بگیره و خروجی بده
بعدش کل تیبل رو با این فانکشن آپدیت کن
update tblname set fieldname=fn_functionname(filedname)
code_project
جمعه 27 شهریور 1394, 14:18 عصر
این را میدونم دوست خوبم اما مهم نوشتن اون تابعه. چه کدی باید واسه تابع بنویسم که بتونه این رشته های در هم و بر هم را درست کنه؟
mahdi87_gh
جمعه 27 شهریور 1394, 19:01 عصر
از تابع CHARINDEX استفاده کنید و مکان * ها رو پیدا کنید سپس از تابع SUBSTRING برای جدا کردن اون قسمت استفاده کنید.
مثال برای charindex
DECLARE @document varchar(64);SELECT @document = 'Reflectors are vital safety' +
' components of your bicycle.';
SELECT CHARINDEX('bicycle', @document); GO
مثال برای SUBSTRING
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%' ORDER BY LastName;
code_project
جمعه 27 شهریور 1394, 22:33 عصر
ممنون مهدی جان. اما این charindex چکار میکنه؟ کاراکترهای جداکننده متن من مختلفه(بیش از 10 کاراکتر جدا کننده) و معلوم هم نیست این کاراکتر دقیقا کجای متن باشه
code_project
دوشنبه 30 شهریور 1394, 07:21 صبح
دوستان کسی راهی به ذهنش نمیرسه؟
Seyyed_H_T
دوشنبه 30 شهریور 1394, 10:43 صبح
برای اینکار شما باید از regex استفاده کنید:
const string sentence = "10/ cats, 20| dogs, 40\\ fish; and; 1/ programmer.";
var parts = Regex.Split(sentence, @"[\*\-\\\/\,\;\|]");
for (var i = parts.Length; i > 0; i--)
{
Console.WriteLine(parts[i - 1]);
}
code_project
دوشنبه 30 شهریور 1394, 17:16 عصر
عالی دوست من. حالا اگه بخوام این رشته های split شده به هم بچسبن و از آخر به اول بیان باید چکار کنم؟ مشروط بر اینکه کاراکترهای جداکننده هم توی رشته تولیدی باشه.
مثلا رشته gl*kp-om;pp با متد شما میشه چهار تا رشته pp , om ,kp , gl اما من میخوام خروجیم بشه pp;om-kp*gl
code_project
سه شنبه 31 شهریور 1394, 07:28 صبح
کسی از دوستان چیزی میدونه؟
code_project
سه شنبه 31 شهریور 1394, 10:23 صبح
بچه ها توراخدا کمککککککککککک
code_project
دوشنبه 27 مهر 1394, 09:26 صبح
مشکل من هنوز پابرجاست. کسی از دوستان نمیتونه کمک کنه
code_project
دوشنبه 27 مهر 1394, 10:04 صبح
:گریه::گریه::گریه:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.