פורסם 2011 באפריל 514 שנים שלום.יש לי טבלה של סטודנטים לדוגמא, ואני צריך לכתוב שאילתה ב SQL שתחזיר לי את כל הסטודנטים שהאות הראשונה שלהם היא בין A ל L.איך אני כותב את זה?אני יודע כעיקרון איך לעשות את זה ע"י WHERE (Students.name) Like 'A* ואפשר לעשות את זה על כל האותיות עם OR מפריד.אין דרך קצרה יותר?תודה!
פורסם 2011 באפריל 514 שנים אתה יכול להוציא את התו הראשון באמצעות הפונקציות LEFT או SUBSTRING, ואז תבדוק אם זה קטן מ-'L' (שים לב שיכול להיות שתצטרך להמיר ל-uppercase קודם בשביל להיות case insensitive). אני לא בטוח אם אפשר להשוות ככה בין שני char (כמו שאפשר ב-C, לדוגמה) אבל מקסימום אתה יכול להמיר את שני התווים למספר באמצעות הפונקציה ASCII.
פורסם 2011 באפריל 514 שנים ^ יש דרך הרבה יותר פשוטה. WHERE (Students.name) like '[A-L]*'ככה אתה בעצם אומר, תחזיר לי את הרשומות שבהן ה-name הוא מהצורה: תו ראשון הוא מ-A עד L, ואחריו יכול להיות כל דבר (* מסמן מספר בלתי מוגבל של תווים. אם אתה רוצה להגביל את מספר התווים, אתה יכול לשים סימני שאלה במקום. סימן שאלה מייצג תו בודד).*שים לב, בפלטפורמות אחרות (SQL SERVER, ואולי גם Oracle), אתה צריך להשתמש בסימן % במקום *.
פורסם 2011 באפריל 514 שנים טוב לדעת לא הייתי בטוח שאפשר לעשות דבר כזה. עם ביטויים רגולריים אתה יכול לעשות הכל. לפתור את בעיית הרעב העולמי, להנחית אדם על מאדים, לרפא איידס...
פורסם 2011 באפריל 714 שנים *שים לב, בפלטפורמות אחרות (SQL SERVER, ואולי גם Oracle), אתה צריך להשתמש בסימן % במקום *.לא יעבוד ב ORACLE ,משתמשים שם ב between
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.