/ / חפש שורות עם תווים מיוחדים בשרת SQL

חפש שורות עם תווים מיוחדים בשרת SQL

תוך כדי פתרון בעיות בעיית תכנות כיוםשמתי לב שאינך יכול להשתמש בחיפוש LIKE אחר עמודות מחרוזת המכילות תווים מיוחדים כמו% או _ בלי להשתמש בתחביר מיוחד. להבין את הבעיה ארכה מספר דקות בלבד, אך לזכור תחביר תמיד קל יותר אם כותבים על כך.

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

נניח שאתה רוצה למצוא שדות שמכילים את הטקסט "100%", אז אתה מרכיב את השאילתה הזו:

בחר * מתוך שם הלוח שם שם השדה אוהב '% 100 %%'

במקום מה שרצית, תקבל את כל השורות המכילות "100" כמו גם את השורות שמכילות "100%".

הבעיה כאן היא ש- SQL Server משתמש בסוגריים של סימני אחוזים, קו תחתון וריבוע כתווים מיוחדים. אתה פשוט לא יכול להשתמש בהם כדמות רגילה בשאילתת LIKE מבלי לברוח מהם.

בריחת סוגר מרובע

אתה יכול להקיף את% או _ בסוגריים מרובעים כדי לומר ל- SQL Server שהתו בפנים הוא תו רגיל.

בחר * מתוך שם הלוח שם שם השדה אוהב '% 100 [%]%'

תחביר T-SQL ESCAPE

לחלופין, אתה יכול לצרף את מפעיל ה- ESCAPE לשאילתה שלך ולהוסיף תו לפני הערך ממנו תרצה להימלט.

בחר * מתוך שם הלוח שבו שם השדה אוהב '% 100%%' ESCAPE ''

החלק ה- ESCAPE '' של השאילתה אומר למנוע ה- SQL לפרש את הדמות אחרי התו כדמות מילולית במקום כתו כללי.

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