NULL VALUE HANDLE (NVL)

NULL VALUE HANDLE (NVL)

 

NULL অর্থাৎ শূন্য (০) নয়। শুন্যেরও মান আছে। কিন্তু NULL অর্থাৎ কিছুনা কিন্তু এক বাইট জায়গা দখল করে। ইংজেীতে বললে Unavailable, Unassigned, Unknown, Inapplicable ইত্যাদি বলা যায় এবং বাংলা যাকে বলা ফাঁকা। কিন্তু শুণ্য নয়।

নিচেরমত করে কমান্ড দিয়ে আমরা EMP টেবিলের COMM (Commission) কলামের NULL বা ফাঁকা ডাটা দেখে নিতে পারি।

SQL> select * from emp;

 

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO

---------- ---------- --------- ---------- --------- ---------- ---------- ----------

      7369 SMITH      CLERK           7902 17-DEC-80        800                    20

      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30

      7566 JONES      MANAGER         7839 02-APR-81       2975                    20

      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30

      7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30

      7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10

      7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20

      7839 KING       PRESIDENT            17-NOV-81       5000                    10

      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

      7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20

      7900 JAMES      CLERK           7698 03-DEC-81        950                    30

      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20

      7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

 

14 rows selected.

 

MARK কৃত রো গুলির COMM কলাম খেয়াল করুন। কোন ডাটা নেই। অর্থাৎ ফাঁকা। NULL VALUE এর সাাথে অন্য কোন সংখ্যা দিয়ে গুন, ভাগ, যোগ বা বিয়োগ করলে ফলাফল শুণ্য হবে।

নিচের কমান্ডে ঊগচ টেবিলের  COMM VALUE কে SAL*12 এর সাথে যোগ করলে ফলাফল কি হয়? শুণ্য হয়।

 

SELECT ENAME, SAL, SAL*12+COMM ANN_SAL FROM EMP;

 

ENAME             SAL    ANN_SAL           

---------- ---------- ----------                         

SMITH             800      19500                                                   

WARD             1250      15500                                                    JONES            2975                                                              MARTIN           1250      16400                                                    BLAKE            2850                                                              CLARK            2450                                                              SCOTT            3000                                                              KING             5000                                                            TURNER           1500      18000                                                    ADAMS            1100                                                            JAMES             950                                                              FORD             3000                                                              MILLER           1300                                                               

14 rows selected.


NULL VALUE কে CONVERT K‡i NOT NULL করতে NVL কমান্ড ব্যবহার করা হয়ে থাকে। CHARACTER TYPE, DATE TYPE AND NUMBER TYPE কলামকে CONVERT করার জন্য পর্যায়ক্রমে নিচের মত ব্যবহার করতে হয়।

NVL (CHARACTER_COLUMN, 'STRING')

NVL (DATE_COLUMN, ''01-DEC-2007')

NVL (NUMBER_COLUMN, 0)

 

নিচের কমান্ডে EMP টেবিলের COMM VALUE †K SAL*12 এর সাথে যোগ করলে ফলাফল কি হয়? শুণ্য হয়।কিন্তু আমরা NVL ব্যবহার করে প্রথমে  NULL VALUE কে শুণ্যে পরিণত করেছি। কাজেই ফলাফল যথার্থ।

 

SELECT ENAME, SAL*12+ NVL(COMM,0) ANNUAL_SALARY

FROM EMP;

 

ENAME      ANNUAL_SALARY  

---------- -------------                                                    SMITH               9600                                                            ALLEN              19500                                                            WARD               15500                                                            JONES              35700                                                            MARTIN             16400                                                            BLAKE              34200                                                            CLARK              29400                                                            SCOTT              36000                                                            KING               60000                                                            TURNER             18000                                                            ADAMS              13200                                                            JAMES              11400                                                            FORD               36000                                                            MILLER             15600                                                           

14 rows selected.

নিচের কমান্ডে EMP টেবিলের  COMM VALUE কে SAL*12 এর সাথে যোগ করলে ফলাফল কি হয়? শুণ্য হয়।

কিন্তু আমরা NVL ব্যবহার করে প্রথমে NULL VALUE কে 200 †Z পরিণত করেছি।

 

SQL>SELECT ENAME, SAL*12+ NVL(COMM,200) ANNUAL_SALARY

  FROM EMP;

 

ENAME      ANNUAL_SALARY

---------- -------------

SMITH               9800

ALLEN              19500

WARD               15500

JONES              35900

MARTIN             16400

BLAKE              34400

CLARK              29600

SCOTT              36200

KING               60200

TURNER             18000

ADAMS              13400

JAMES              11600

FORD               36200

MILLER             15800

 

14 rows selected.

 

একই ভাবে CHARACTER  এবং  DATE_COLUMN ফিল্ডের DATA TYPE CONVERT  বা পরিবর্তন করা যেতে পারে।

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন