PDA

View Full Version : ساخت يك sp (استور پروسجر)با شرط Split



HAMRAHSOFT.IR
دوشنبه 24 مرداد 1390, 07:59 صبح
سلام من اريكي از تبل هاي برنامه يك spساختم

حلا مخوام بگم فيلد آدرس را Split كن بر حسب كاركتر | يعني اگر كاركتر | در اصلاعات اون بود به يك فيلد جديد انتقال پيدا كنه درواقع يك ستون جديد اجاد بشه داخل sp و قبل از كاركتر | داخل اون باشه و مابقي داخل فيلد آدرس و يا برعكس اين قضيه ار اول تا كاركتر| داخل فيلد آدرس و بقي در ستون جديد

HAMRAHSOFT.IR
دوشنبه 24 مرداد 1390, 12:11 عصر
دوستان با اين كد مشكلم تقريبا حل شد

نميدونم بعد بهم خطا ميده يا نه يا جاي باك پيدا كن

ولي مشكلي كه داره كراكتر| را هم نشون ميده
SELECT LEFT(Name,CHARINDEX('|',Name))
From tbl1

Galawij
دوشنبه 24 مرداد 1390, 12:24 عصر
Select Substring(YourFieldName,1,Charindex('|',YourFieldN ame)-1) as Address,Substring(YourFieldName,Charindex('|',Your FieldName)+1,len(YourFieldName))as OtherField
From YourTableName

فرض را بر این گرفته ام که شما فقط یک کاراکتر | در فیلد تان دارید و آدرس در داخل فیلد، قبل از علامت | قرار دارد.

HAMRAHSOFT.IR
دوشنبه 24 مرداد 1390, 12:33 عصر
دوست خوب كد شما خطا ميده

آدرس به اين صورت مي باشد

خ خيام | كوچه محمدي بن بست اول پلاك 9

خطا اين
Msg 537, Level 16, State 3, Line 1
Invalid length parameter passed to the LEFT or SUBSTRING function.

Galawij
دوشنبه 24 مرداد 1390, 12:52 عصر
به این شکل تغییر بدید:

SelectRtrim(Ltrim(Substring(TbName,1,Charindex('|' ,TbName)-1)))as Address,Rtrim(Ltrim(Substring(TbName,Charindex('|' ,TbName)+1,len(TbName))))as OtherField
From dbo.TbNames

خطا نمی ده، دارم باهاش کار می کنم.
نام فیلد و جدول خودتون را جاگذاری کنید.

HAMRAHSOFT.IR
دوشنبه 24 مرداد 1390, 13:42 عصر
تشكر كه جواب ميدي ولي بازم خطا ميده
Select Rtrim(Ltrim(Substring(Tbl_Customer.Address,1,Chari ndex('|',Address)-1)))as Address3,Rtrim(Ltrim(Substring(Tbl_Customer.Addres s,Charindex('|',Tbl_Customer.Address)+1,len(Tbl_Cu stomer.Address))))as Address2
From Tbl_Customer

خطا
Msg 537, Level 16, State 3, Line 1
Invalid length parameter passed to the LEFT or SUBSTRING function.