פונקציית Oracle NVL

Pwnqzyyt Oracle Nvl



ערך null הוא שדה שנותר ריק או שלא הוקצה לו ערך.

ערכי NULL נפוצים במסדי נתונים, במיוחד בעת ייבוא ​​נתונים חיצוניים. לכן, אלא אם עמודה מכילה אילוץ למניעת ערכי NULL, סביר להניח שמנוע מסד הנתונים ישתמש בערך NULL עבור ערך חסר.







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



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



פונקציית Oracle NVL

כאמור, פונקציה זו מאפשרת לנו להחליף ערכי NULL בערכים משמעותיים יותר. תחביר הפונקציה מסופק להלן:





NVL ( expr1, expr2 ) ;

הפונקציה מקבלת שני ארגומנטים עיקריים:

expr1 ו- expr2 – פרמטר זה מגדיר את הערך שייבדק עבור ערכי NULL. אם הערך של expr1 הוא NULL, הפונקציה תחזיר את הערך של expr2.



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

Oracle NVL() דוגמה לשימוש

הדוגמה הבאה מדגימה את השימוש הבסיסי בפונקציה NVL():

דוגמה 1

שקול את הדוגמה הבאה:

בחר lvl ( 'שלום' , 'עוֹלָם' ) מדואלי;

בדוגמה הקודמת, אנו משתמשים בפונקציה NVL() כדי לבדוק אם המחרוזת 'hello' היא ערך NULL. מכיוון שהערך שסופק אינו null, הפונקציה תחזיר את המחרוזת 'hello'.

דוגמה 2

שקול את הדוגמה השנייה המוצגת להלן:

בחר lvl ( ריק, 'עוֹלָם' ) מדואלי;

במקרה זה, מכיוון שהביטוי הראשון הוא ערך NULL, השאילתה תחזיר את המחרוזת השנייה כפי שמוצג להלן:

דוגמה 3

אנו יכולים גם להשתמש בפונקציה NVL() כדי להחליף ערכי NULl בטבלת מסד נתונים. שקול את טבלת העובדים המוצגת להלן:

בחר FIRST_NAME, LAST_NAME, EMAIL, SALARY, COMMISSION_PCT מ-EMPLOYEES emp;

טבלה המתקבלת:

כפי שאנו יכולים לראות, העמודה commission_pct מכילה ערכי NULl. אנו יכולים ליצור שאילתה להחלפת ערכי NULL מהעמודה commission_pct ב-0, כפי שמוצג בדוגמה למטה:

בחר FIRST_NAME, LAST_NAME, EMAIL, SALARY, nvl ( COMMISSION_PCT, 0 )
מ-EMPLOYEES emp;

בשאילתת הדוגמה הקודמת, אנו משתמשים בפונקציה NVL() כדי לבדוק את הערך בעמודה commission_pct עבור NULLs. אם יש ערך NULL, נחזיר 0. אחרת, נחזיר את הערך המקורי.

זה אמור לאפשר לנו להחליף את ערכי ה-NULL בעמודה ב-0, כפי שמוצג בטבלה המתקבלת למטה:

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

סיכום

במדריך זה, למדת כיצד להשתמש בפונקציה Oracle NVL() כדי להחליף ערכי NULL בערכי ברירת מחדל. כדאי לזכור שלמרות שהפונקציה NVL() דומה מאוד לפונקציה COALESCE(), הפונקציה NVL() יכולה להחזיר רק ערך בודד. במקביל, הפונקציה coalesce() יכולה להחזיר מספר ערכים.

אם אתה מחפש פונקציה שיכולה לקחת יותר משני ארגומנטים מבלי להשתמש בפונקציה coalesce() , שקול את הפונקציה NVL2() .