עזרה באפיון. יצירת סינטקס SQL קל לפונקציית QUERY בגוגל שיטס
-
יש יכולות מדהימות וחדשות בשיטס, וגולת הכותרת היא יצירת פונקציה בעלת שם וביטויי למדא (LAMBDA).
- (הערה צדדית: למה להשתמש בפונקציה בעלת שם ולא בUDF על ידי APP SCRIPT? כי UDF בשיטס נורא, הוא מאט מאוד את הפעולה בכמה שניות לכל פונקציה. גם אם עברתם בטעות את מגבלות הזמן של APP SCRIPT מסתבר שגם פונקציות UDF לא יעבדו לכם...)
כעת אני עובד על פונקציית QUERY.
כבר יצרתי קיצור דרך ל SELECT, לקרוא לשדה בשמו או במספרו או כרגיל. שיהיה אפשר לעשות כך:=QUERY_BETTER(A1:F16,"SELECT 1, Col3, אבא, שם עמודה - אפילו עם רווח באמצע, LIMIT 4") או =QUERY_BETTER(A1:F16,"1, 3, שם עמודה - אפילו עם רווח באמצע, WHERE Col4 <> ''") (או גם INNER JOIN) =QUERY_BETTER(CROSSJION(A1:F16, AC1:AG22),"1, 3, אבא, WHERE Col4 = Col10 ") עם החזרת עמודות ככותרת = כתיבת פרמטר 3 בפונקציית QUERY. פרמטר זה הוא אופציונלי, ובפונקצייה בעלת שם אי אפשר ליצור פרמטר אופציונלי, אז עשיתי שיהיה אפשר לכתוב את פרמטר 2 כמערך: =QUERY_BETTER(A1:F16,{"SELECT 1, Col3, אבא, LIMIT 4", 3})
או אפשרות נוספת - לבחור את מה שלא ציינתי:
כאן ייבחרו עמודות 2, 4 ו 6. עמודה 5 לא תיבחר כי הכותרת שלה מכילה את הטקסט "אבא" =QUERY_BETTER(A1:F16,"NO SELECT 1, 3, אבא, LIMIT 4") או במקום - NO SELECT לכתוב בהתחלה את התו - ! =QUERY_BETTER(A1:F16,"! 1, 3, שם עמודה, שם עמודה 2 LIMIT 4")
השאלה איך נכון ליצור קיצורי דרך לשאר משפט ה SQL אחרי ה SELECT, כי שם יש שימוש במספרים ("WHERE Col2 = 2") ובטקסט, כך שצריך לעטוף או לכתוב איך שהוא את הטקסט שיהיה ברור על מה מדובר. (לעטוף עם סוגריים מרובעות או תו _ לפני), אני מסתפק איזה סינטקס עדיף לקבוע.
אשמח לעצתכם!