מחיקת ערכים מסטרינג בצד שמאל, אקסס
-
אני צריך למחוק את 15 הערכים השמאליים של טקסט בשאילתת sql של אקסס. לא מצאתי פונקציה.
איך זה נעשה? תודה.
-
@chagold
בשאילתת עידכוןupdate TblBanks set BankName= Left([BankName],Len([BankName])-15) where Len([BankName])>15
כמובן תבדוק לפני שיש לך יותר מ15 תווים - נתתי דוגמא בשאילתא לזה
לחילופין אפשר שפונקצית העידכון תהיה יותר מתוחכמת ותחתוך רק במידה ויש יותר מ15, אבל נראה לי עדיף לסנן את זהבשאילתת בחירה:
select id, Left([BankName],Len([BankName])-15) as bank from TblBanks
-
הנה שאילתת בחירה טובה יותר - מתייחסת לערכים הקטנים מ15
SELECT Banks.BankId, Banks.BankName, Left([BankName],Len([Bankname])-IIf(Len([BankName])>15,15,Len([BankName]))) AS Bank FROM Banks;
כמובן במידה ויש 15 אז לא יראו כלום.
ייתכן שבמקרה כזה תרצה שיקרה משהו אחר - וכדאי לחשוב על זה -
@chagold שמא טעית בניסוח? אם כוונתך לחתוך את 15 התווים הראשונים, תוכל להשתמש בפונקציה Mid, שמחזירה חלק ממחרוזת, ולדלג על 15 התווים הראשונים.
כיון שהפרמטר האחרון Length הוא אופציונאלי, תוכל להשמיטו ולכתוב פשוט כך:Mid(your_string, 16)
זה מתאים לכל סוגי המחרוזות, ארוכות מ-15 תוים או לא, ואז השאילתא תהיה כך:
Update TblBanks Set BankName = Mid([BankName],16)