ברוך הבא, אורח
שם משתמש: סיסמא: זכור אותי

דיון: סקריפט לשרשור ערכים מאותו שדה

סקריפט לשרשור ערכים מאותו שדה 9 years 10 months ago #6313

שלום,
אני משתמש בגרסה 10 וחווה את הבעיה הפשוטה הבאה. זהו הסקריפט שלי אשר מטרתו היא לשרשר ערכים משדה מסויים (אשר נקרא מקובץ qvd) ולהפרידם בפסיקים. הבעיה היא שהסקריפט נכשל בגלל בנסיון לשרשר את הפסיקים. במידה ואני מוריד את השרשור של הפסיקים הכל עובד (אך אז אין הפרדה בין הערכים):

DISTINCT_TASKS:
LOAD Distinct TASK_ID From shavit_tasks.qvd(qvd);

COUNT_T:
LOAD COUNT(TASK_ID) AS COUNT_TASKS
Resident DISTINCT_TASKS;

LET vCOUNT_TASKS=peek('COUNT_TASKS');
LET vTASK_ID_CON='';
//LET vCOMMA="AAA";

TASKS:
LOAD TASK_ID,RowNo() AS ROW_NUMBER
Resident DISTINCT_TASKS;

for i=1 to $(vCOUNT_TASKS)

LOAD TASK_ID as TASK_ID_CON
Resident TASKS
WHERE ROW_NUMBER=$(i);
//LET vCOMMA=$(vCOMMA)&$(vCOMMA);
LET vTASK_ID_CON=PEEK('TASK_ID_CON')&','&$(vTASK_ID_CON);
next i;

האם מישהו יודע מה הגורם לשגיאה וכיצד משרשרים באופן תקין?
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:סקריפט לשרשור ערכים מאותו שדה 9 years 10 months ago #6314

שלום ערן.
ישנה דרך קלה יותר לדעתי באמצעות הפונקציה concat.

הפונקציה הזו עובדת בדומה לפונקציה SUM רק שבמקום לצרף מספרים היא מצרפת מחרוזות עם אפשרות לציין מפריד.

ם תריץ את הקוד הבא,
תקבל טבלה המכילה רשומה אחת ובה שדה אחד בלבד המכיל שורה ארוכה של כל הערכים מופרדים בפסיק (החלף מפריד כרצונך).

DISTINCT_TASKS:
LOAD Distinct TASK_ID From shavit_tasks.qvd(qvd);

TASKS:
load
concat(TASK_ID)
resident DISTINCT_TASKS

drop table DISTINCT_TASKS

שים לב שאין לך יותר מדי ערכים בשדה שאותו אתה משרשר, זה עלול ליצור מחרוזת ארוכה מדי.

אגב פונקציה זו קיימת גם בגרסה לאובייקטים בlayout


לסיום בואו ננסה אתגר קטן.
ישנה פונקציה שעושה בדיוק את ההפך (ואני בכוונה לא מפרט מה הכוונה - ההפך). מי שימצא אותה :cheer: יקבל דוגמת סקריפט קטנה ושימושית לישומה.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:סקריפט לשרשור ערכים מאותו שדה 9 years 10 months ago #6316

דניאל, תודה על התשובה.
כבר אתמול, לאחר שנברתי קצת יותר, גיליתי גם אני את פונקציית ה-CONCAT אשר נותנת לי פתרון מדוייק למה שאני צריך במקרה הזה.
בכל מקרה, בשביל שימוש עתידי, האם אתה יודע להסביר לי מדוע השרשור שניסיתי אני לעשות נכשל?
הנהלת האתר ביטלה גישת כתיבה ציבורית.
זמן יצירת העמוד: 0.271 שניות

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

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

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

מאמרים

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

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning