עבור לתוכן

זקוק לעזרה קטנה ב SQL. ACCESS

Featured Replies

פורסם

שלום.

יש לי טבלה של סטודנטים לדוגמא, ואני צריך לכתוב שאילתה ב SQL שתחזיר לי את כל הסטודנטים שהאות הראשונה שלהם היא בין A ל L.

איך אני כותב את זה?

אני יודע כעיקרון איך לעשות את זה ע"י


WHERE (Students.name) Like 'A*

ואפשר לעשות את זה על כל האותיות עם OR מפריד.

אין דרך קצרה יותר?

תודה!

פורסם

אתה יכול להוציא את התו הראשון באמצעות הפונקציות LEFT או SUBSTRING, ואז תבדוק אם זה קטן מ-'L' (שים לב שיכול להיות שתצטרך להמיר ל-uppercase קודם בשביל להיות case insensitive). אני לא בטוח אם אפשר להשוות ככה בין שני char (כמו שאפשר ב-C, לדוגמה) אבל מקסימום אתה יכול להמיר את שני התווים למספר באמצעות הפונקציה ASCII.

פורסם

^ יש דרך הרבה יותר פשוטה.

 
WHERE (Students.name) like '[A-L]*'

ככה אתה בעצם אומר, תחזיר לי את הרשומות שבהן ה-name הוא מהצורה: תו ראשון הוא מ-A עד L, ואחריו יכול להיות כל דבר (* מסמן מספר בלתי מוגבל של תווים. אם אתה רוצה להגביל את מספר התווים, אתה יכול לשים סימני שאלה במקום. סימן שאלה מייצג תו בודד).

*שים לב, בפלטפורמות אחרות (SQL SERVER, ואולי גם Oracle), אתה צריך להשתמש בסימן % במקום *.

פורסם
  • מחבר

תודה רבה :)

פורסם

טוב לדעת :) לא הייתי בטוח שאפשר לעשות דבר כזה.

עם ביטויים רגולריים אתה יכול לעשות הכל. לפתור את בעיית הרעב העולמי, להנחית אדם על מאדים, לרפא איידס...

פורסם

לא הייתי בטוח שזה ביטוי רגולרי (אין לו את התחביר ה"סטנדרטי").

פורסם

*שים לב, בפלטפורמות אחרות (SQL SERVER, ואולי גם Oracle), אתה צריך להשתמש בסימן % במקום *.

לא יעבוד ב ORACLE ,משתמשים שם ב between

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים