הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

שליפת נתונים משדה

More
17 years 6 months ago #3167 by ronend12
היי
יש לי שתי שאלות

1. נניח שיש לי בשדה:  3R545456U500 ואני רוצה לשלוף את את הערך בין R ל- U כך שאקבל 545456

אורך התיאור בשדה משתנהאולם בכל אחד מהם יש ערך בין R ל- U.

2.איזה פונקציה אני צריך לבדוק עם ערך בשדה הוא מספר (אם הוא מספר מבצע חישוב אם לא = 0 ).

תודה

רונן

Please התחברות to join the conversation.

More
17 years 6 months ago #3169 by shahark
אהלן רונן,
ביצעתי את הבדיקה באורקל, ב- SQL זה יעבוד ממש דומה.
ערך לבדיקה: 3R545456U500
1. ביצעתי בדיקה איפה מופיע לי פעם ראשונה R , ואיפה U.
השתמשתי בפונקציה: instr
שמקבלת ערך לבדיקה וערך לחיפוש. ביצעתי את זה עבור שני R, ועבור U.
עבור R נקבל: 2
עבור U נקבל: 9
2. השתמשתי בפונקציה substr בשביל לקחת את החלק בין R ו- U.
הפונקציה מקבלת ערך לחיפוש, מיקום התחלתי ומיקום סופי.
הערך לחיפוש הוא השדה שלך, הערך ההתחלתי זה המיקום של R + 1 , כי אין צורך ב-R.
הערך הסופי זה U פחות R פחות 1. כי אין צורך ב- U.
זה מחזיר לנו:
545456

עבור הערך שהתקבל אני מבצע בדיקה:
אם הערך הוא מספר , כלומר בהמרה שלו למספר הוא גדול או שווה לאפס. אז יש לבצע המרה למספר ולהחזיר את הערך. אם לא מתקיים להחזיר אפס. זה נראה ככה:
CASE
WHEN
to_number([NewString]) >= 0
THEN
to_number([NewString])
ELSE
0
END


בדקתי  מספר ערכים וזה עובד.
מקווה שזה מה שחיפשת.

יום טוב

שחר
כאשר Test זה השדה לבדיקה

Please התחברות to join the conversation.

More
17 years 6 months ago #3173 by ronend12
שחר תודה
לגבי 1 זה בסדר גצור והצלחתי.

לגבי 2 הצלחתי אבל צריך קודם לחפש את הערך הASCII שלו ואז לעבד.

בכל מקרה תודה רבה הסתדרתי

רונן

Please התחברות to join the conversation.

Moderators: לינוּר
Time to create page: 0.264 seconds