Order By

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