BI&BigData
  • Register
תנו לנו לייק וקבלו עדכונים ישירות לפיד

דירוג משתמשים: 0 / 5

Star inactiveStar inactiveStar inactiveStar inactiveStar inactive
 

ברשותנו טבלה בDB המכילה מספרי כרטיסי אשראי, כמו כן , יש ברשותי טבלת אקסל המכילה תבניות של מספרי כרטיסי אשראי עם סיווג לכל תבנית. אני מעוניין לשייך מספר כרטיסי אשראי מהDB לסיווג מקובץ האקסל.

 

לדוגמא, קובץ האקסל יכול להכיל:

תבנית סיווג
4580 XX22 7344 2264 סיווג 1
4580 X324 73XX 2274 סיווג 2
4580 5555 XX44 2234 סיווג 3

 

*הערך X מסמן ספרה כלשהי.

 

בהינתן הדוגמא של קובץ האקסל, מספר כרטיס האשראי 4580 3322 7344 2264 ישויך לסיווג 1, בעוד שמספר כרטיס האשראי 4580 6324 7311 2274 ישויך לסיווג 2.

 

כמובן שהדרך לבצע זאת היא באמצעות האופרטור like.

תזכורת:

השימוש בlike מיועד למצוא מחרוזות על סמך תבניות כאשר בתבנית הערך _ מסמן תו אחד וערך % מסמן מחרוזת באורך כלשהו.

לדוגמא:

‘My name is Eli’ like ‘%name is%’ תחזיר True.

‘My name is Eli’ like ‘___name is Eli’ תחזיר True.

כדי לפתור את הדרישה מהלקוח, ניתן היה להחליף את הX ב_ ולהשתמש בcase.

לדוגמא:

Case when table.credit_card like ‘4580 __22 7344 2264’ then ‘סיווג 1’
     when table.credit_card like ‘4580 _324 73__ 2274’ then ‘סיווג 2’
     when table.credit_card like ‘4580 5555 __44 2234’ then ‘סיווג 3’ end

אך הבעיה היא שטבלת האקסל מכילה שורות רבות וכן משתנה במהירות, לכן הפתרון של שימוש באמצעות case when הוא לא אידיאלי במקרה זה.

נשתמש בפתרון אחר:

השימוש במחרוזות בlike הוא דבר מוכר על ידי רוב האנשים המשתמשים בשפת SQL. אך דבר שרבים לא יודעים הוא שהמחרוזת המכילה את התבנית (כגון  '___name is%') בעצמה יכולה להיות ערך בתוך DB.

לצורך עניין זה,  טענו את קובץ האקסל לטבלה: לצורך העניין נקרא לה Templates, המכילה את המחרוזת בשדה STR ואת הסיווג בשדה Sivug.

כעת עלינו רק לחבר את שתי הטבלאות באמצעות האופרטור like.

לדוגמא:

 

Select table.credit_card, templates.sivug 
From table, templates
Where table.credit_card like replace(templates.str,’X’,’_’) 

 

הערות:

1.      שיטה זאת תעבוד הן בSql Server והן באורקל.

2.      יש להיזהר לא לטעון לטבלת התבניות 2 ערכים זהים מבחינה לוגית לטבלת התבניות. לדוגמא, אם נטען שני ערכים :  4580 XX35 6678 3445 וכן 4580 %35 6678 3445 , הופעה של 4580 4435 6678 3445 כרטיס אשראי  תגרום להכפלת רשומות.

3. שימו לב, אנו מחליפים את הX המופיע בקובץ האקסל ב_ התקני בשפת SQL וזאת באמצעות פונקציית replace.

Sap

Oracle

Informatica

SAS

Microstrategy

IBM

Microsoft

Qlikview

Teradata

Webfocus

התחברות

x
יצירת חשבון
x

קליק אחד ואתם מחוברים. מהיר .קל .מאובטח.

מעניין? שתפו דף זה באמצעות הטלפון הנייד

שימוש באופרטור like כדי לזהות תבניות של כרטיסי אשראי - QR Code Friendly
Powered by QR Code Friendly

אירועים קרובים

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

הדף שלנו בפייסבוק

התחברות

חדש בישראל

כניסות למאמרים
6991067