ورود

View Full Version : جداسازی داده های مشخص



gelarshid
چهارشنبه 21 مهر 1395, 11:19 صبح
باسلام و تشکر بابت پاسخی میدید ، در یک query میخوام از کاراکتری خاص به بعد در یک فیلد رو برام جدا کنه
به عنوان مثال عددی که داده شده به این شکله : 1/2*100 و من میخوام که از علامت * به سمت راست یا چپ رو در فیلدی دیگر نمایش بده . چون داده های دو طرف علامت * به تعداد یکسان نیستن از left و right نمیتونم استفاده کنم. نمونه دیگر داده ها به شکل زیره :


Query

قطر کمربند


100*1/2


32*1/2



32*1/2


63*1/2


63*1/2


80*1/2


80*1/2


80*1-1/2

mazoolagh
چهارشنبه 21 مهر 1395, 11:57 صبح
باید از تابع split استفاده کنین:
SPLIT(BELT_SIZE,"*")

در این جا که فقط یک * در هر رشته هست دو مقدار رو برمیگردونه که البته به شکل آرایه هست. پس هر مقدار رو که خواستین باید مشخص کنین:
SPLIT(BELT_SIZE,"*")(0)
یا
SPLIT(BELT_SIZE,"*")(1)

ولی چون نمیتونین این تابع رو مستقیم در کوئری استفاده کنین باید یک تابع بنویسین:
PUBLIC FUNCTION GET_SIZE(X AS STRING,INDEX AS INTEGER) AS STRING
GET_SIZE=SPLIT(X,"*")(INDEX)
END FUNCTION

SELECT BELT_NAME, GET_SIZE([BELT_SIZE],0) AS BELT_WIDTH, GET_SIZE([BELT_SIZE],1) AS BELT_DIAMETER FROM BELTS

mazoolagh
چهارشنبه 21 مهر 1395, 12:01 عصر
البته بهتر هست تا حد ممکن این دست دیتا رو از همون اول در دیتابیس جداگانه نگهداری کنین تا هنگام کوئری یا ریپورت کمترین پردازش رو نیاز داشته باشه

ScienceLover
چهارشنبه 21 مهر 1395, 16:15 عصر
Substringو Indexof را استفاده کنید. یا از نوع داده ای String استفاده کنید. در ضمن زبان برنامه نویسی تونو مشخص نکردید!

mazoolagh
شنبه 24 مهر 1395, 13:00 عصر
Substringو Indexof را استفاده کنید. یا از نوع داده ای String استفاده کنید. در ضمن زبان برنامه نویسی تونو مشخص نکردید!

بخش جاوا اسکریپت دو کوچه پایینتر بود رد کردین
بخش ++c هم یک خیابون بالاتره

این توابع که شما اسم بردین مال اون محله است.
حتی در همین دو محیط هم از این روش برای این مشکل استفاده نمیشه.


در آفیس فقط با یک زبان سروکار داریم اونهم VBA‌ هست.