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

204

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ả
NVL Chuyển đổi giá trị Null thành giá trị thực
NVL2 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.
NULLIF So 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.
COALESCE Trả 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 Type Conversion Example
NUMBER NVL(number_column,9)
DATE NVL(date_column, ’01-JAN-95′)
CHAR or VARCHAR2 NVL(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;