PARSE בצורה מהירה ואלגנטית - ilDBA Portal

PARSE בצורה מהירה ואלגנטית

07/04/2012 | פורסם על ידי

אם נקח לדוגמא כתובת IP שהיא בעצם מחרוזת של 4 מספרים ובניהם נקודה ונרצה לחלק אותה לארבע כדי לקבל את כל אחד מחלקי כתובת IP אז בעבר הייתי נדרש לכתוב סקריפט שימצא כל את מיקום הנקודה הראשונה במחרוזת – והערך הראשון – המספר הראשון של כתובת ה IP – היה משמאל לה לנקודה. אחר כך היינו צריכים למצוא את מיקום הנקודה הבאה בתור – והערך השני היה בין המיקום של הנקודה הראשונה והשניה וכך הלאה.
בעזרת  פונקציה חדשה ופשוטה (PARSENAME) החיים הרבה יותר קלים:
לדוגמא:

Select PARSENAME('10.161.52.139',1)
Select PARSENAME('10.161.52.139',2)
Select PARSENAME('10.161.52.139',3)
Select PARSENAME('10.161.52.139',4)

המספרים 1-4 מגדירים איזה חלק במחזורת  (בכתובת ה IP) אני רוצה לקבל.
כל אחת משורות הקוד תתן לנו חלק אחד בלבד מתוך ארבעת המספרים.
"הבעיה" שהפונקציה החדשה יודעת לחלק מחזורות רק ע"פ מקומי הנקודה,
אבל מה קורה עם יש לנו  מחרוזת שאנחנו רוצים לבודד את חלקיה וההבדל הוא לא נקודה אלא למשל רווח כמו במחרוזת הבאה  'Eran Shaked' ?

כדי ל"התגבר" על הבעיה הזאת נשתמש ב replace ונחליף את הרווח (או כל מפריד אחר) בנקודה.

Select PARSENAME(replace('Eran Shaked',' ','.'),1)
Select PARSENAME(replace('Eran Shaked',' ','.'),2)
The following two tabs change content below.

ערן שקד

Latest posts by ערן שקד (see all)

תגובה אחת ל- “PARSE בצורה מהירה ואלגנטית”

pitoach [Ariely.Ronen] | 30/06/2012 בשעה 10:10
commenter

עדיין פונקציית split של CLR תיתן דרך טובה יותר
1. כאן אנחנו צריכים לדעת מראש כמה איברים שלנו בהפרדה או שיהיה עלינו לעבוד עם לולאה
2. משאבים נמוכים יותר בשימוש ב SPLIT אם רוצים יותר מנתון מסויים
3. נוחות עבודה ללא צורך בהחלפה של תווים. בכל פונקציית SPLIT שמכניסים מגדירים פרמטר של ההפרדה (שיכול להיות לא רק תוו בודד כמובן)

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

הפונקציה COALESCE

כולם מכירים את הפונקציה NVL, ומשתמשים בה לא מעט. לעומת זאת, הפונקציה COALESCE, השייכת לאותה משפחה של פונקציות, פחות מוכרת, למרות שהיא קיימת כבר מגרסה 9i ועולה ביכולותיה על NVL הישנה והטובה. מצד שני, אף [...]

טיפ: איך לזכור ב-SQLPLUS שאתה בסביבת היצור

כמה פעמים קרה לנו שעבדנו עם sqlplus  מול סביבת יצור ביחד עם עוד כמה חלונות פתוחים ועם קצת לחץ? בקיצור כרגיל… מכוון שהכול כל כך לחוץ, הרצנו איזה פקודה הרסנית, ומיד הצטערנו עליה מאוד: אוי! הרצתי [...]
עבודה

עבודה תחת סביבת FireWall

אורי לרנר בטיפ קצר ושימושי על עבודה בסביבת אורקל [...]
Indexes

Indexes in SQL Server 2

ערן שקד ממשיך בסדרת מאמרים על אינדקסים בSQL [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: