Trong SQL, các hàm xử lý single-row functions được sử dụng để tùy chỉnh và định dạng kết quả đầu ra của truy vấn. Những hàm này xử lý dữ liệu trên từng hàng riêng lẻ và trả về một giá trị duy nhất cho mỗi hàng. Dưới đây là một số hàm xử lý một hàng phổ biến trong Oracle SQL, bao gồm các ví dụ minh họa về cách sử dụng chúng.
Using Single-Row Functions | Các hàm thường dùng trong Oracle Database
1. Hàm Chuỗi (String Functions)
1.1 UPPER và LOWER
Mục đích: Chuyển đổi chuỗi ký tự thành chữ hoa hoặc chữ thường.
SELECT first_name, UPPER(last_name) AS last_name_upper FROM employees;
Kết quả:
first_name | last_name_upper |
---|---|
John | SMITH |
Alice | JOHNSON |
1.2 CONCAT
Mục đích: Nối hai chuỗi ký tự lại với nhau.
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees;
Kết quả:
full_name |
---|
John Smith |
Alice Johnson |
1.3 SUBSTR
Mục đích: Trích xuất một phần của chuỗi ký tự.
SELECT first_name, SUBSTR(first_name, 1, 3) AS first_three_chars FROM employees;
Kết quả:
first_name | first_three_chars |
---|---|
John | Joh |
Alice | Ali |
1.4 LENGTH
Mục đích: Trả về độ dài của chuỗi ký tự.
SELECT first_name, LENGTH(first_name) AS name_length FROM employees;
Kết quả:
first_name | name_length |
---|---|
John | 4 |
Alice | 5 |
2. Hàm Số Học (Numeric Functions)
2.1 ROUND
Mục đích: Làm tròn giá trị số học đến số chữ số thập phân được chỉ định.
SELECT salary, ROUND(salary, 0) AS rounded_salary FROM employees;
Kết quả:
salary | rounded_salary |
---|---|
5200.75 | 5201 |
4800.25 | 4800 |
2.2 TRUNC
Mục đích: Cắt bỏ các chữ số thập phân sau số thập phân được chỉ định.
SELECT salary, TRUNC(salary, 0) AS truncated_salary FROM employees;
Kết quả:
salary | truncated_salary |
---|---|
5200.75 | 5200 |
4800.25 | 4800 |
2.3 MOD
Mục đích: Tính phần dư của phép chia.
SELECT employee_id, MOD(employee_id, 2) AS remainder FROM employees;
Kết quả:
employee_id | remainder |
---|---|
1 | 1 |
2 | 0 |
3. Hàm Ngày Giờ (Date Functions)
3.1 SYSDATE
Mục đích: Trả về ngày và giờ hiện tại của hệ thống.
SELECT SYSDATE AS current_date FROM dual;
Kết quả:
current_date |
---|
2024-06-25 14:30:00 |
3.2 MONTHS_BETWEEN
Mục đích: Tính số tháng giữa hai ngày.
SELECT hire_date, MONTHS_BETWEEN(SYSDATE, hire_date) AS months_between FROM employees;
Kết quả:
hire_date | months_between |
---|---|
2020-01-15 | 53.5 |
2019-03-20 | 63.3 |
3.3 ADD_MONTHS
Mục đích: Thêm một số tháng cụ thể vào một ngày.
SELECT hire_date, ADD_MONTHS(hire_date, 6) AS six_months_later FROM employees;
Kết quả:
hire_date | six_months_later |
---|---|
2020-01-15 | 2020-07-15 |
2019-03-20 | 2019-09-20 |
3.4 NEXT_DAY
Mục đích: Tìm ngày của ngày cụ thể tiếp theo (ví dụ: ngày thứ Hai tiếp theo).
SELECT hire_date, NEXT_DAY(hire_date, 'MONDAY') AS next_monday FROM employees;
Kết quả:
hire_date | next_monday |
---|---|
2020-01-15 | 2020-01-20 |
2019-03-20 | 2019-03-25 |
4. Hàm Chuyển Đổi (Conversion Functions)
4.1 TO_CHAR
Mục đích: Chuyển đổi giá trị ngày hoặc số thành chuỗi ký tự.
SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') AS formatted_hire_date FROM employees;
Kết quả:
formatted_hire_date |
---|
2020-01-15 |
2019-03-20 |
4.2 TO_DATE
Mục đích: Chuyển đổi chuỗi ký tự thành giá trị ngày.
SELECT TO_DATE('2024-06-25', 'YYYY-MM-DD') AS date_value FROM dual;
Kết quả:
date_value |
---|
2024-06-25 |
4.3 TO_NUMBER
Mục đích: Chuyển đổi chuỗi ký tự thành giá trị số.
SELECT TO_NUMBER('12345') AS number_value FROM dual;
Kết quả:
number_value |
---|
12345 |
Túm lại
Các hàm xử lý Single-Row Functions trong SQL giúp tùy chỉnh và định dạng kết quả truy vấn theo nhiều cách khác nhau, từ việc xử lý chuỗi ký tự, tính toán số học, làm việc với ngày giờ, đến chuyển đổi giữa các kiểu dữ liệu. Sử dụng các hàm này một cách hiệu quả giúp bạn dễ dàng thao tác và phân tích dữ liệu trong cơ sở dữ liệu Oracle.