דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. מיון לפי מיקוד 7 ב- linq

מיון לפי מיקוד 7 ב- linq

מתוזמן נעוץ נעול הועבר ארכיון code613m
2 פוסטים 2 כותבים 270 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שמואל
    כתב ב נערך לאחרונה על ידי
    #1

    כידוע מספרי המיקוד בארץ עברו ל7 ספרות

    יש לי טבלה בת אלפי רשומות
    אשר לצורך מסוים אני ממיין אותה לפי טווחי מיקוד (מ - עד -)
    הבעיה היא שבחלק מהמיקודים הוסיפו שני ספרות בסוף בשביל "מיקוד 7"
    בכל אופן אני עובר בלינק על כל הרשומות
    וברצוני שכאשר במיקוד של שורה ספציפית מופיע 7 ספרות המיון יתבצע רק ע"פ ה- 5 ספרות הראשונות
    וכמובן שגם ה - orderby ימיין בהתאם לכך
    יש פתרון יעיל לא קוד ארוך?

    תודה!

    פורסם במקור בפורום CODE613 ב09/10/2013 17:24 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      בשאילתה אתה מוסיף עמודת ביטוי, ולפיה אתה ממיין.
      הביטוי צריך להיראות ככה:

      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)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0

      בא תתחבר לדף היומי!
      • התחברות

      • אין לך חשבון עדיין? הרשמה

      • התחברו או הירשמו כדי לחפש.
      • פוסט ראשון
        פוסט אחרון
      0
      • דף הבית
      • קטגוריות
      • פוסטים אחרונים
      • משתמשים
      • חיפוש
      • חוקי הפורום