Order By digunakan untuk mengurutkan data dalam Statement select. Data bisa diurutkan secara ascendant (urutan biasa) maupun descendant (kebalikan dari ascendant). Dalam query SQL, klausanya disingkat menjadi ASC (ascendant) dan desc (descendant). Sintaksnya :
- Statement_select Order By nama_kolom Asc
- Statement_select Order By nama_kolom desc
Contoh Query :
- Select * From siswa Order By nilai Asc
- Select * From siswa Order By nilai Desc
Contoh :
//install librarynya kalau belum ada
#include <iostream>
#include <sqlite3.h>
char *err;
typedef char stringku[30];
int callback(void *notused, int jkolom, char **dataku, char **kolom){
for(int i=0;i<jkolom;i++)printf("%s = %s\n", kolom[i], dataku[i]);
printf("\n");
return 0;
}
void isi_database(sqlite3 *conn){
char query[255];
static stringku data[3][2]={{"Geri", "Saribumi"}, {"Panji", "Wonokarto"}, {"Tomi", "Gading"}};
sqlite3_exec(conn, "Create Table siswa(id INTEGER Primary Key, nama Text, alamat Text);", 0, 0, &err);
//tambahkan data
for(int i=0;i<3;i++){
sprintf(query, "INSERT INTO siswa(id, nama, alamat) VALUES('%d','%s', '%s')", i, data[i][0], data[i][1]);
sqlite3_exec(conn, query, 0, 0, &err);
}
}
int main(){
int res=0;
sqlite3 *conn=NULL;
sqlite3_stmt *stmt=NULL;
sqlite3_open("databaseku.dat", &conn);
//jika database kosong, tambah tabel
sqlite3_exec(conn, "Drop table siswa", 0, 0, &err);
isi_database(conn);
//gunakan query
printf("\nAscendant : \n");
sqlite3_exec(conn, "SELECT * FROM siswa Order By nama asc", callback, 0, &err);
printf("\nDescendant : \n");
sqlite3_exec(conn, "SELECT * FROM siswa Order By nama desc", callback, 0, &err);
sqlite3_close(conn);
return 0;
}
Output :
Ascendant : id = 0 nama = Geri alamat = Saribumi id = 1 nama = Panji alamat = Wonokarto id = 2 nama = Tomi alamat = Gading Descendant : id = 2 nama = Tomi alamat = Gading id = 1 nama = Panji alamat = Wonokarto id = 0 nama = Geri alamat = Saribumi