Giới thiệu
SQLite hỗ trợ toán tử nối chuỗi ||. Bài viết demo cách gộp các cột (tên, lương, ngày giờ) thành một cột duy nhất với dấu phân cách : .
Các bước
Bước 1 & 2: Tạo project & Giao diện
Giống các ví dụ trước: 2 EditText (Tên, Lương), 4 Button, 1 ListView.
Bước 3: MainActivity.java
Code tương tự, chỉ khác ở chỗ ListView hiển thị chuỗi đã nối.
Bước 4: DatabaseHelper.java - Nối cột
package com.example.andy.myapplication;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
class DatabaseHelper extends SQLiteOpenHelper {
static final String DB_NAME = "salaryDatabase5";
static final String TABLE = "SalaryDetails";
DatabaseHelper(Context ctx) { super(ctx, DB_NAME, null, 1); }
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE +
"(id INTEGER PRIMARY KEY, name TEXT, salary TEXT, datetime DEFAULT CURRENT_TIMESTAMP)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int o, int n) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE);
onCreate(db);
}
boolean insert(String name, String salary) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", name); cv.put("salary", salary);
db.replace(TABLE, null, cv);
return true;
}
ArrayList getAllContacts() {
SQLiteDatabase db = getReadableDatabase();
ArrayList list = new ArrayList<>();
// Nối cột name, salary, datetime với dấu ' : '
Cursor res = db.rawQuery(
"SELECT (name || ' : ' || salary || ' : ' || datetime) AS fullname FROM " + TABLE, null);
while (res.moveToNext()) {
list.add(res.getString(res.getColumnIndex("fullname")));
}
return list;
}
boolean update(String n, String s) {
getWritableDatabase().execSQL("UPDATE " + TABLE + " SET name='" + n + "', salary='" + s + "'");
return true;
}
boolean delete() {
getWritableDatabase().execSQL("DELETE FROM " + TABLE);
return true;
}
}
Giải thích
Câu truy vấn SELECT (name || ' : ' || salary || ' : ' || datetime) AS fullname sử dụng toán tử || để nối chuỗi. Kết quả mỗi dòng sẽ có dạng: Nguyễn Văn A : 10000000 : 2024-01-15 10:30:00.
Kết quả

ListView hiển thị mỗi mục là một chuỗi đã gộp 3 cột với dấu phân cách.