בשאילתה אתה מוסיף עמודת ביטוי, ולפיה אתה ממיין.
הביטוי צריך להיראות ככה:
Mid([ColumnName], 1, 5)
כאשר ColumnName זה שם העמודה, ואתה ממיין לפי עמודת הביטוי ולא העמודה המקורית.
שים לב שזה מיון טקסטואלי, כלומר האות 9 גדולה מהאות 8 אפי' שאחרי ה9 יש נגיד רק ספרה אחת ואחרי ה8 יש 4.
בדרך כלל זה לא משנה כי כל המיקודים באותו אורך (לא פחות ולא יותר מחמש).
אם אתה רוצה שהמיון יהיה מספרי,
אתה צריך עטוף את הפונקצייה דלעיל בביטוי Val שממירה למספר.
אם העמודה המקורית היא כבר מספר, יותר קצר לכתוב ביטוי שבודק אם זה גדול מ99999 ואם כן מחלק במאה.
ככה:
iif([ColumnName]>99999, [ColumnName]/100, [ColumnName])
ולמיין לפי הביטוי כמובן.
הצלחה,
[size=85:fsxvlofl]ותמיד, תמיד, לשאול בפורום...[/size:fsxvlofl]
[u:fsxvlofl][size=150:fsxvlofl]עריכה:[/size:fsxvlofl][/u:fsxvlofl]
רק כעת שמתי לב לכותרת בה כתוב LINQ.
אני חשבתי שהמדובר על אקסס.
אז בלינק זה יותר פשוט אפי'...
order by Mikud.SubString(0,5)
או אם זה מספרי:
order by (Mikud > 99999 ?? Mikud / 100 : Mikud) (0,5)
השורה הזאת משתמשת עם ביטוי-תנאי, ביטוי שהרבה מתכנתים שוכחים מקיומו.
בלי הביטוי אז צריך לעשות פונקציה (מלאה או למבדה), ולתת את הערך החוזר לorder by.
פורסם במקור בפורום CODE613 ב09/10/2013 17:43 (+03:00)