Use Nvl function in math calculation for null value : NVL « Char Functions « Oracle PL / SQL






Use Nvl function in math calculation for null value

 
SQL>
SQL> CREATE TABLE emp (
  2    emp_id               NUMBER,
  3    ename             VARCHAR2(40),
  4    hire_date        DATE DEFAULT sysdate,
  5    end_date DATE,
  6    rate     NUMBER(5,2),
  7    CONSTRAINT emp_pk    PRIMARY KEY (emp_id)
  8  );

Table created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (101, 'Mary', to_date('15-Nov-1961','dd-mon-yyyy'),null,169);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (102, 'Tom', to_date('16-Sep-1964','dd-mon-yyyy'),to_date('5-May-2004','dd-mon-yyyy'),135);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (104, 'Peter', to_date('29-Dec-1987','dd-mon-yyyy'),to_date('1-Apr-2004','dd-mon-yyyy'),99);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (105, 'Mike', to_date('15-Jun-2004','dd-mon-yyyy'),null,121);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (107, 'Less', to_date('2-Jan-2004','dd-mon-yyyy'),null,45);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (108, 'Park', to_date('1-Mar-1994','dd-mon-yyyy'),to_date('15-Nov-2004','dd-mon-yyyy'),220);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (110, 'Ink', to_date('4-Apr-2004','dd-mon-yyyy'),to_date('30-Sep-2004','dd-mon-yyyy'),84);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (111, 'Tike', to_date('23-Aug-1976','dd-mon-yyyy'),null,100);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (112, 'Inn', to_date('15-Nov-1961','dd-mon-yyyy'),to_date('4-Apr-2004','dd-mon-yyyy'),70);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (113, 'Kate', to_date('3-Mar-2004','dd-mon-yyyy'),to_date('31-Oct-2004','dd-mon-yyyy'),300);

1 row created.

SQL>
SQL>
SQL> SET ECHO ON
SQL> SELECT ename, NVL(rate,0) billing_rate,
  2         NVL(rate,0) + 100 increased_rate
  3  FROM emp
  4  WHERE emp_id IN (113, 116);
Kate                        300
           400


1 row selected.

SQL>
SQL>
SQL>
SQL> drop table emp;

Table dropped.

   
  








Related examples in the same category

1.NVL: Returns a substitute (some other value) if a value is null
2.NVL: Supply an NVL default that is of a different datatype
3.NVL: Provide default value for NULL
4.Use NVL() to convert number columns and date columns
5.NVL() deals with date value
6.Combine nvl and to_char
7.select nvl( '', 'Yes '''' is null' ) "Evaluate"
8. nvl( e2.ename, 'NO BOSS! PARTY TIME!' )
9.Use nvl in a function
10.Use TRUNC function in NVL function
11.This will fail, because the datatypes of the two arguments are different
12.Accommodate the datatype difference by placing a TO_CHAR function around the LAST_STOCK_DATE
13.Use NVL to check nullment in PL/SQL