אחד הדברים המעצבנים שניתקלתי בהם הוא שבירת שורות מהעתקה מתוצאות שאילתא ב MsSql לגליון אקסל.
לקוח רוצה דוח מסוים באופן חד פעמי, אנחנו יוצרים שאילתא, מריצים ואת התוצאות רוצים להדביק בגליון אקסל אבל אז מתחילות להישבר שורות ולא ניתן להגיש דוח כזה ללקוח.
למה זה קורה?
זה קורה מפני ש MsSql לא מסיר תווים של ירידת שורה באופן אוטומטי. תו ירידת שורה יכול להיות לחיצה על Enter או הוספת ירידת שורה באופן אחר
מה עושים?
פשוט: עוטפים את השדה (או השדות) הבעייתי בפונקציית Replace ומחליפים בעצם את התו בערך ריק
דוגמה:
SELECT first_name,last_name,REPLACE(REPLACE(comment, CHAR(9), ''), CHAR(13), '') comment
FROM YOUR_TABLE_NAME
במקרה שלנו, השדה הבעייתי הוא comment שמכיל הערות שנרשמו במערכת עם Editor פשוט או אפילו TextArea. עטפנו את השדה בשתי החלפות עבור שני מקרי ירידת שורה ותו ריק.
התוצאה תיראה אותו הדבר בתוצאת השאילתא אבל בהדבקה לאקסל הנתונים ייראו בצורה מסודרת