לעיתים אנחנו צריכים לחבר ביחד שתי מחרוזות (או יותר) אחת אחרי השנייה – שרשור בז'רגון המקצועי. בכל שפת תכנות יש את האופרטור ("סימן פעולה"?) שלה לשרשור, באקסל, למשל, זה & ואילו ב – C# זה "+". ב – SAS האופרטור הוא "||" (פעמיים התו "|" אחד אחרי השני):
data _null_;
a='aaaa';
b='bbbb';
c=a||b;
put c=;
run;
אכן האופרטור הזה עושה את העבודה אבל ישנן גם כמה פונקציות ב – SAS לשרשור שכל אחת מהן מאפשרת לנו לשרשר יותר בכיף. הראשונה היא CATS שחוץ משרשור של שתי מחרוזות (או יותר) היא גם מורידה רווחים (spaces) מיותרים מימין ומשמאל של כל מחרוזת לפני השרשור:
data _null_;
a='aaaa ';* Note the spaces after the string;
b=' bbbb';* Note the spaces before the string;
c1=a||b;
c2=cats(a,b);
put c1=; * With spaces;
put c2=; * No spaces;
run;
פונקציה נוספת מהמשפחה הזו היא CATX אשר בנוסף להורדת רווחים כמו CATS מאפשרת לנו להוסיף תו או תוים כלשהם כרצונו בין המחרוזות אותן אנחנו משרשרים, CATX גם מספיק חכמה כדי לא להוסיף את התו המפריד שבחרנו במידה ואחת המחרוזות אותן אנחנו משרשרים היא ריקה:
data _null_;
str1='aaaa';
str2='bbbb';
str3=''; * Empty string;
str4='rrr rrr';
c1=catx('-',str1,str2);* One separating character;
c2=catx('#-#',str1,str4);* Or several separating characters;
c3=catx('\', str1, str3, str4); * Ignoring the empty string;
put c1=;
put c2=;
put c3=;
run;
יתרון נוסף של הפונקציות הללו היא שהן מאפשרות לנו לשרשר בקלות מספר רב של משתנים:
data _null_;
str1='aaaa';
str2='bbbb';
str3='cccc';
str4='rrr rrr';
c_all=catx('\', of str:); * All the variables that start with str;
put c_all=;
run;
חגי