PDA

View Full Version : splitکردن یک فیلد در جدول و آپدیت آن



hamidreza
یک شنبه 03 مرداد 1389, 17:05 عصر
سلام

من یک جدول دارم دارای یک فیلد استرینگ که باید به چندین فیلد دیگر شکسته شود (مثل ادرس)
بخش های این فیلد با علاکت کاما از یکدیگر جدا شده اندو با رسیدن به این علامت فیلد باید شکسته شود و یک فیلد جدید ساخته شود
کمک نمائید به چه شکل فیلد اولیه شکسته شود به پارتهای کوچکتر و چگونه در همان جدول آبدیت شود
(راهکار در قالب یک فانکشن باشد)

محمد سلیم آبادی
یک شنبه 03 مرداد 1389, 17:22 عصر
سلام،
منطق کار اینطوری هست که رشته شکسته شده و تبدیل به سطر می شود نه تبدیل به یک فیلد دیگه.
در مقاله ی زیر یک inline TVF برای این منظور وجود داره:
http://www.30sharp.com/ShowArticle.aspx?nid=13&did=224&AuthorID=11

hamidreza
یک شنبه 03 مرداد 1389, 17:50 عصر
ممنون از راهنمایی شما

من در یک جدول یک فیلد مثل ادرس دارم. در این جدول بعنوان مثال 10 فیلد جدید درست می کنم
فانکشن باید با رسیدن به کاما محتوی را بر داشته در فیلد شماره 1 نشانده و آپدیت کند بهمین ترتیب تا فیلد 10 و بعد دوباره برای رکورد بعدی اینکار را انجام دهد

محمد سلیم آبادی
یک شنبه 03 مرداد 1389, 18:04 عصر
این عملیات Update را باید خودتان ایجاد کنید. روش کار همی به این شکل هست:
1. ابتدا تمام آدرسها را با کمک تابع Splitter و یک کوئری که از CROSS APPLY تشکیل شده است تجزیه می کنید. نکته ای که هست اینه که اگر 2000 دارین کار می کنید نمی تونید Cross Apply بکار بگیرین.
2. سپس با استفاده از یک کوئری مناسب (یعنی متناسب به نسخه SQL Server ای که دارین) که در اینجا قرار دارد سطرها را PIVOT می کنید:
http://www.30sharp.com/ShowArticle.aspx?nid=13&did=207&AuthorID=11
http://www.30sharp.com/ShowArticle.aspx?nid=13&did=221&AuthorID=11

3. در پایان کوئری حاصل را بر اساس کلید اصلی با جدول اولیه JOIN کرده و UPDATE را انجام می دین.