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.
- Thông tin dung lượng của Tablespace
- Tương tác giữa AI và con người: Hợp tác hay đối đầu?
- Q117. Examine this configuration: CDB1 is a container database
- Data files trong Oracle là gì?
- Q13. Which is the default column or columns for sorting output from compound queries using SET operators such as intersect In a SQL statement?

Booked
Enfold Responsive MultiPurpose Theme
eForm Pro
Alone – Charity Multipurpose Non-profit WordPress Theme
Hotel + Bed and Breakfast Booking Calendar Theme | Bellevue
StudioPress Foodie Pro Genesis WordPress Theme
Hotel Master Booking WordPress
Rank Math SEO Pro
The7 - Ultimate Website & Online Store Builder for WordPress and WooCommerce
Dante Responsive Multipurpose Wordpress Theme
Startit - Startup Business Theme
Avada Theme
Porto | Multipurpose & WooCommerce Theme
Massive Dynamic - WordPress Website Builder
RT-Theme 18 Responsive WordPress Theme
907 - Responsive Multi-Purpose WordPress Theme
AdForest - Classified Ads WordPress Theme
Ronneby - High-Performance WordPress Theme
Oshine - Multipurpose Creative WordPress Theme
Woffice - Intranet Extranet & Project Management WordPress Theme
Bingo - Newspaper & Magazine WordPress Theme
Convertio - Conversion Optimized Landing Page Theme
Zephyr - Material Design Theme
Essentials - Multipurpose WordPress Theme
Pearl - Corporate Business WordPress Theme
StudioPress Agency Pro Genesis WordPress Theme
TheFox - Responsive Multi-Purpose WordPress Theme
Total - Responsive Multi-Purpose WordPress Theme
Eduma - Education WordPress Theme
Google Tag Manager for WooCommerce PRO
WooCommerce PayPal Advanced
WooCommerce Paymill Gateway
Ohio - Creative Portfolio & Agency WordPress Theme
WooCommerce Purchase Order Gateway
B2BKing - The Ultimate WooCommerce B2B & Wholesale Plugin
Rise - Business & Consulting WordPress Theme
Product Designer
WooCommerce Aramex
WP Timeline
Bookory - Book Store WooCommerce Theme
Residence Real Estate WordPress Theme
YITH WooCommerce Quick View Premium
YITH WooCommerce Product Countdown Premium
YITH WooCommerce Dynamic Pricing and Discounts Premium
YITH WooCommerce Compare Premium