sql - שאלה על יכולות case

חגי פאהן

משתמש סופר מקוצען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
האם case יכול לשלוט בשדה שמעדכנים?
כלומר כך: עדכן טבלה פלונית, הגדר: אם שדה פלוני מכיל מספר אלמוני - עדכן שדה א' לערך X. אחרת, עדכן שדה ב' לערך X.
where etc

ואם לא, האם יש דרך קצרה יותר מאשר לעדכן את שני השדות ובתוך ערך העדכון להכניס את התנאי?
 

חגי פאהן

משתמש סופר מקוצען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
תנאי. לדו':
קוד:
IIF([FEILD1] = 2, [FEILD2] = 15, [FEILD2] = 20)
כלומר - אם שדה 1 שווה 2 אז שדה 2 יהיה שווה 15, אם לא - הוא יהיה שווה 20.
זה כמו case וכמו decode של oracle. אבל בכל מקרה הוא לא שולט בהתניית השדה.
 

Esti B

משתמש מקצוען
הנדסת תוכנה
האם case יכול לשלוט בשדה שמעדכנים?
כלומר כך: עדכן טבלה פלונית, הגדר: אם שדה פלוני מכיל מספר אלמוני - עדכן שדה א' לערך X. אחרת, עדכן שדה ב' לערך X.
where etc

ואם לא, האם יש דרך קצרה יותר מאשר לעדכן את שני השדות ובתוך ערך העדכון להכניס את התנאי?
יכול להיות שאפשר דרך פונקציה.
יש לי דוג' לפונקציה שמעדכנת בכל פעם שדה אחר, לפי הפרמטר הנשלח אליה, ע"י משפט CASE.
 
נערך לאחרונה ב:

Esti B

משתמש מקצוען
הנדסת תוכנה
upload_2019-12-9_15-5-52.png

בדוג' הנ"ל הפרמטר TYPE הנשלח לפונ' מהווה שם שדה.
 

חגי פאהן

משתמש סופר מקוצען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
בדוג' הנ"ל הפרמטר TYPE הנשלח לפונ' מהווה שם שדה.
תודה. אז זה דומה למה שכתבה @חנה4 לעשות משפט דינמי. החסרון הגדול הוא הביצועים, וזה צריך לקרות בתוך loop על הרבה רשומות.
 

P.S.

משתמש מקצוען
למה בעצם לא לכתוב את ה-case פעמיים? הוא ארוך ומסובך?
 

חגי פאהן

משתמש סופר מקוצען
מנוי פרימיום
בוגר/תלמיד פרוג
עיצוב גרפי
עימוד ספרים
למה בעצם לא לכתוב את ה-case פעמיים? הוא ארוך ומסובך?
לא מסובך אבל ארוך. וגם זה כפל קוד, שאותה התנייה צריכה להיות בשני מקומות. וכל שינוי שיהיה, צריך לשנות בשני מקומות.
 

P.S.

משתמש מקצוען
לא מסובך אבל ארוך. וגם זה כפל קוד, שאותה התנייה צריכה להיות בשני מקומות. וכל שינוי שיהיה, צריך לשנות בשני מקומות.
אפשר ליצור subquery או טבלה זמנית עם ההתניה, שיהיו בה שני עמודות, מזהה, וערך בוליאני האם התנאי התקיים
ואז ב-update לעשות שני cases קטנים על העמודה הזאת
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קכג

א שִׁיר הַמַּעֲלוֹת אֵלֶיךָ נָשָׂאתִי אֶת עֵינַי הַיֹּשְׁבִי בַּשָּׁמָיִם:ב הִנֵּה כְעֵינֵי עֲבָדִים אֶל יַד אֲדוֹנֵיהֶם כְּעֵינֵי שִׁפְחָה אֶל יַד גְּבִרְתָּהּ כֵּן עֵינֵינוּ אֶל יְהוָה אֱלֹהֵינוּ עַד שֶׁיְּחָנֵּנוּ:ג חָנֵּנוּ יְהוָה חָנֵּנוּ כִּי רַב שָׂבַעְנוּ בוּז:ד רַבַּת שָׂבְעָה לָּהּ נַפְשֵׁנוּ הַלַּעַג הַשַּׁאֲנַנִּים הַבּוּז לִגְאֵיוֹנִים:
נקרא  3  פעמים

לוח מודעות

למעלה