› פורומים › אפיון ופיתוח פריוריטי › תחביר LIKE
- This topic has 4 תגובות, 2 משתתפים, and was last updated לפני 9 שנים, חודש 1 by
אלמוני.
- Post
-
- יולי 19, 2016 בשעה 10:19 am
אני מנסה לכתוב טריגר CHECK-FIELD לשדה שם לקוח, אשר יבדוק אם השם שמוקש כבר קיים באופן חלקי או מלא בלקוח אחר. כרגע יש בדיקה לגבי שם זהה, אך אני צריך משהו יותר כללי.למשל: לקוח קיים – יוסי כהן
לקוח חדש – יוסי כהן שרותי הדפסהחשבתי להשתמש ב-LIKE בסגנון
SELECT CUSTDES INTO :PAR1
FROM CUSTOMERS
WHERE :$.@ LIKE
STRCAT ׂ)'*', CUSTDES, '*'ׂ(
אבל נראה שצריך להשתמש במחרוזת "אמיתית" (כמו 'T%') ולא במשתנה או ביטוי. אני לא יכול להשתמש בפונקציה PREFIX כי זו בודקת החל מהאות הראשונה ולא בטוח שתהיה שם זהות (נניח שהלקוח החדש נקרא "שרותי הדפסה יוסי כהן"), מעבר לבעיות אחרות.האם יש למישהו רעיונות?
- Replies
-
- יולי 20, 2016 בשעה 5:15 pm
לפני שאתה קורא את זה, תדע שאין לי פיתרון – רק מסביר למה לא נראה לי שהמערכת תצליח בשיטה שהצעת:בהמשך ישיר למה ששאלת ניסיתי לעשות את זה על הסוכנים:
ERRMSG 999 WHERE EXISTS (SELECT 'X' FROM AGENTS
WHERE AGENTS.AGENTNAME LIKE '*:$.@*');
(וזה לא עבד לי)אבל גם לוגית אני רואה שזה לא הגיוני, כי אתה בעצם צריך לפרק את כל השמות בDB, תחשוב על זה שאתה צריך רק חלק מהערך שמופיע אבל אתה בעצם בודק שם אחרי שם, חלק מהשמות שתבדוק שם מכילים מילה אחת או יותר שזהים למילה אחת או יותר מהערך שאתה מנסה להכניס, אבל הבעיה היא שהמערכת בודקת ככה:
*יוסי כהן שירותי הדפסה*
או
*שירותי הדפסה יוסי כהן*
אם תריץ את שתי השאילתות האלה על המסך מן הסתם לא תקבל את אותן התוצאות ככה שצריך לפרק בכל רשומה את הCUSTDES שלה. (נראה לי יאט את המע' לחלוטין).אתה צריך פונקציה שעושה את זה, כמו שעושים בVISUAL STUDIO על AUTOCOMPLETE
- יולי 21, 2016 בשעה 10:48 am
נעם, כשתמצא את הפתרון שלך אשמח אם תחלוק אותו איתנו 🙂
נראה שאם תפתור את זה יהיה אפשר להשתמש בזה כדי לייעל את המע' משמעותית מבחינת נתונים- יולי 25, 2016 בשעה 7:36 am
- יש להתחבר למערכת על מנת להגיב.