Hàm RTRIM() - Xóa khoảng trắng bên phải
RTRIM(string) loại bỏ tất cả khoảng trắng (space, tab, newline) ở cuối chuỗi. Có overload RTRIM(string, chars) xóa các ký tự chỉ định.
DatabaseHelper.java
public ArrayList<String> getAllContacts() {
ArrayList<String> list = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
// rtrim(name) xóa space cuối tên, ghép với salary
Cursor cursor = db.rawQuery(
"SELECT RTRIM(name) || ' : ' || salary as fullname FROM " + TABLE_NAME, null);
if (cursor.moveToFirst()) {
do {
list.add(cursor.getString(0));
} while (cursor.moveToNext());
}
cursor.close();
return list;
}
Demo: Insert tên có space cuối
public boolean insert(String name, String salary) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
// Thêm space cuối để test RTRIM
values.put("name", name + " "); // "Sairam "
values.put("salary", salary.getBytes());
return db.insert(TABLE_NAME, null, values) != -1;
}
Kết quả

Trước RTRIM: "Sairam : 50000" → Sau RTRIM: "Sairam : 50000" (space cuối đã xóa).
Các hàm TRIM liên quan
| Hàm | Mô tả | Ví dụ | Kết quả |
|---|---|---|---|
| TRIM(X) | Xóa space đầu VÀ cuối | TRIM(' abc ') | 'abc' |
| LTRIM(X) | Xóa space ĐẦU | LTRIM(' abc') | 'abc' |
| RTRIM(X) | Xóa space CUỐI | RTRIM('abc ') | 'abc' |
| TRIM(X, Y) | Xóa ký tự Y ở đầu/cuối | TRIM('xyabcxy', 'xy') | 'abc' |
| LTRIM(X, Y) | Xóa ký tự Y ở đầu | LTRIM('xyabc', 'xy') | 'abc' |
| RTRIM(X, Y) | Xóa ký tự Y ở cuối | RTRIM('abcxy', 'xy') | 'abc' |
Ứng dụng thực tế
- Làm sạch dữ liệu nhập từ user (thường có space thừa).
- Chuẩn hóa trước khi so sánh:
WHERE RTRIM(name) = RTRIM(input). - Xóa ký tự đặc biệt:
RTRIM(path, '/')bỏ slash cuối đường dẫn. - Kết hợp:
TRIM(REPLACE(name, '\t', ' '))xử lý tab + space.
Lưu ý hiệu năng
- Hàm TRIM/RTRIM/LTRIM chạy trên từng row → chậm trên bảng lớn.
- Nên làm sạch dữ liệu lúc INSERT (Java:
string.trim()) thay vì lúc QUERY. - Index không hoạt động với
WHERE RTRIM(col) = 'value'→ cân nhắc computed column hoặc trigger.