- · Converts nulls to an actual value-NVL
- · Returns the first non-null expression in the list-COALESCE
- · Examines the first expression; if the first expression is not null, it returns the second expression; if the first expression is null, it re-turns the third expression-NVL2
- · Compares two expressions; if they are equal, the function returns null; if they are not equal, the function returns the first expression-NULLIF
Use aliases to make the output more readable.
1. Create a report that shows the Global Fast Foods
promotional name, start date, and end date from the f_promotional_menus table.
If there is an end date, temporarily replace it with “end in two weeks.” If
there is no end date, replace it with today’s date.
SELECT name, start_date, end_date, NVL2(end_date, 'end in two weeks',
TO_CHAR( SYSDATE, 'DD-Mon-YYYY')) as nvl2
FROM f_promotional_menus;
2. Not all Global Fast Foods staff members
receive overtime pay. Instead of displaying a null value for these employees,
replace null with zero. Include the employee’s last name and overtime rate in
the output. Label the overtime rate as “Overtime Status”.
SELECT last_name, NVL(overtime_rate,0) as "Overtime Status"
FROM f_staffs;
3. The manager of Global Fast Foods has decided
to give all staff who currently do not earn overtime an overtime rate of $5.00.
Construct a query that displays the last names and the overtime rate for each
staff member, substituting $5.00 for each null overtime value.
SELECT last_name, TO_CHAR( NVL(overtime_rate,5), '$999.99') as
"Overtime Status"
FROM f_staffs;
4. Not all Global Fast Foods staff members have a
manager. Create a query that displays the employee last name and 9999 in the
manager ID column for these employees.
SELECT last_name,
NVL(manager_id,9999) as manager_id
FROM f_staffs;
5. Which statement(s) below will return null if
the value of v_sal is 50?
a. SELECT nvl(v_sal, 50) FROM emp;
b. SELECT nvl2(v_sal, 50) FROM emp;
c. SELECT nullif(v_sal, 50) FROM
emp;
d. SELECT coalesce (v_sal, Null,
50) FROM emp;
c
6. What does this query on the Global Fast Foods
table return?
SELECT COALESCE(last_name, to_char(manager_id)) as NAME
FROM f_staffs;
Since last_name is not nullable, it will always return last_name. If
last_name would have been nullable and there had been a null last_name field,
it would have fall back to manager_id
converted to varchar2.
7.
a. Create a report listing the
first and last names and month of hire for all employees in the EMPLOYEES table
(use TO_CHAR to convert hire_date to display the month).
SELECT NVL(first_name,'FNU') , last_name, TO_CHAR(hire_date, 'Month')
as "month of hire"
FROM employees;
First name is nullable, so print
first name unknown(FNU in short)
b. Modify the report to display null if the month of hire is September.
Use the NULLIF function.
SELECT NVL(first_name,'FNU') , last_name, NULLIF( TO_CHAR(hire_date,
'Month'), 'September') as "month of hire"
FROM employees;
8. For all null values in the specialty column in
the DJs on Demand d_partners table, substitute “No Specialty.” Show the first
name and specialty.
SELECT first_name, NVL(specialty, 'No Specialty') as specialty
FROM d_partners;
No comments:
Post a Comment