Cách sử dụng General Functions trong Oracle SQL

SysVN xin giới thiệu bài viết “Cách sử dụng General Functions trong Oracle SQL”. Mời các bạn theo dõi. Những bài viết liên quan đến Single-Row Functions, những hàm chuyển đổi các bạn có thể xem lại những link bên dưới

  1. Giới thiệu

General Functions bao gồm: NVL, NVL2, NULLIF, COALESCE. Những hàm này được sử dụng bất kỳ kiểu dữ liệu và liên quan đến giá trị Null

  • NVL (expr1, expr2)
  • NVL2 (expr1, expr2, expr3)
  • NULLIF (expr1, expr2)
  • COALESCE (expr1, expr2, …, exprn)

Bảng mô tả

Hàm Mô tả
NVLChuyển đổi giá trị Null thành giá trị thực
NVL2Nếu expr1 không Null, NVL2 trả về expr2. Nếu expr1 là Null, NVL2 trả về expr3, expr1 có thể có bất kỳ kiểu dữ liệu nào.
NULLIFSo sánh expr1 và expr2. Nếu expr1=expr2 thì trả về Null. Nếu expr1 không bằng expr2 thì trả về expr1.
COALESCETrả về biểu thức không Null đầu tiên trong danh sách các biểu thức.

2. NVL Function

NVL dùng đề chuyển đổi giá trị Null thành giá trị thực. Kiểu dữ liệu sử dụng trong hàm NVL có thể kiểu date, character, number và điều lưu ý kiểu dữ liệu expr1 và expr2 phải khớp với nhau.

Cú pháp:  NVL (expr1, expr2)

  • expr1 là giá trị nguồn hoặc biểu thức có thể chứa giá trị Null
  • expr2 là giá trị đích cho việc chuyển đổi giá trị null
Data TypeConversion Example
NUMBERNVL(number_column,9)
DATENVL(date_column, ’01-JAN-95′)
CHAR or VARCHAR2NVL(character_column, ‘Unavailable’)

Ví dụ:

2. NVL2 Functions

Cú pháp: NVL2 (expr1, expr2, expr3)

Nếu expr1 không Null, NVL2 trả về expr2. Nếu expr1 là Null, NVL2 trả về expr3, expr1 có thể có bất kỳ kiểu dữ liệu nào.

Ví dụ: 

SELECT last_name, salary, commission_pct,
NVL2(commission_pct,’SAL+COMM’, ‘SAL’) income
FROM employees
WHERE department_id IN (50, 80);

Chú ý: expr1,expr2, expr3 có thể bất kỳ kiểu dữ liệu nào nhưng expr2, expr3 ngoại trừ kiểu LONG.

3. NULLIF Function

Cú pháp:  NULLIF (expr1, expr2)

  • Nếu expr1 = expr2 trả về Null
  • Nếu expr1 # expr2 trả về expr1

4. COALESCE Function

Cú pháp:  COALESCE (expr1, expr2, … exprn)

Trả về biểu thức không Null đầu tiên trong danh sách các biểu thức.

Ví dụ 1:

SELECT last_name, employee_id,commission_pct,manager_id,
COALESCE(TO_CHAR(commission_pct),TO_CHAR(manager_id),’No commission and no manager’)
FROM employees;

Ví dụ 2:

SELECT last_name, salary, commission_pct,salary+(commission_pct*salary),salary+2000,
COALESCE((salary+(commission_pct*salary)), salary+2000, salary) “New Salary”
FROM employees;