Friday - May 9, 2008

Home | Site Map | Channels | Profile | Press Room | Services | Contact 

currently 8 user(s) online

search 

   Latest News

»

sony-ak.com Luncurkan Kamus Teknologi Informasi (May 27, 2006)

»

sony-ak.com Luncurkan IT Event Calendar (May 20, 2006)

»

Web Chat Berbasis AJAX dari sony-ak.com (May 09, 2006)

»

sony-ak.com Advertising Program (May 01, 2006)

»

Sony AK di Tabloid PCplus (April 18, 2006)

news archives » 


   Random Article

»

Mengenal Emulator PC - Bagian 1 (2652)

»

Mengenal Virus Komputer - Part I: Overview (12547)

»

Apa itu Protocol? (5545)

»

Sejarah Inovasi pada Perusahaan IBM (3926)

»

Page Split pada Database SQL Server (1254)

   Newsletter

Join our newsletter, you will get alert about content updates

powered by Yahoo! Groups















Nedstat Basic - Free web site statistics

 
 
Tips SQL Server: Mendapatkan Row dari m to n

Author: Ariesa Rahardjo
Published: April 08, 2006
Visits: 2661 - Category: SQL Server
 
     
 

Halo pembaca semuanya. Apa kabar? Kali ini kita bertemu kembali dalam tips SQL Server. Masih seputar hal yang sederhana saja, yaitu bagaimana caranya menampilkan row (baris) dari row yang ke m sampai n misalnya. Masih belum jelas juga? Begini, misalnya Anda ingin menampilkan 5 (lima) row teratas pada tabel yang Anda inginkan, maka Anda bisa menggunakan klausa TOP pada SQL Server. Contohnya adalah SELECT TOP 5 * from <table_name>. Bagaimana jika ingin menampilkan 5 row pada kelompok berikutnya? Ini akan menjadikan kasus tersebut jadi lebih sulit sedikit. Tapi Anda tidak usah khawatir, karena Anda bisa menggunakan perintah standar ANSI SQL untuk melakukannya.

Mari kita demonstrasikan teknik tersebut. Penulis di sini menggunakan SQL Server 2000. Pertama-tama coba buat tabel seperti berikut ini.

create table penulis (kode char(3), nama varchar(30))

Perintah di atas akan membuat tabel dengan nama 'penulis'.

Kemudian mari kita isi tabel tersebut dengan beberapa data.

insert into penulis (kode, nama) values ('001','Sony AK');
insert into penulis (kode, nama) values ('002','Agus K');
insert into penulis (kode, nama) values ('003','Risman A');
insert into penulis (kode, nama) values ('004','Norman S');
insert into penulis (kode, nama) values ('005','Kiki N');
insert into penulis (kode, nama) values ('006','Legowo B');
insert into penulis (kode, nama) values ('007','Tony C');
insert into penulis (kode, nama) values ('008','Goenawan L');
insert into penulis (kode, nama) values ('009','Adi JR');
insert into penulis (kode, nama) values ('010','Frans T');
insert into penulis (kode, nama) values ('011','Onno WP');
insert into penulis (kode, nama) values ('012','Endy M');

Sekarang tabel 'penulis' di atas akan berisi 12 data, yaitu kode penulis dan nama penulis. Jika sekarang kita ingin menampilkan daftar 5 penulis pertama maka Anda bisa menuliskan perintah berikut ini.

select top 5 * from penulis

Untuk menampilkan 5 penulis pada kelompok berikutnya -- penulis ke 6 - 10 -- maka Anda bisa mengetikkan script SQL seperti berikut ini.

SELECT
*
FROM
penulis AS A1
WHERE
(
SELECT
COUNT(*)
FROM
penulis AS A2
WHERE
A2.kode <= A1.kode
) BETWEEN 6 AND 10
ORDER BY
kode

Hasilnya akan nampak seperti berikut ini.

Sebagai catatan, perintah di atas dari sisi performa masih kurang bagus. Mengapa demikian? Perintah tersebut akan melakukan scan pada tabel 'penulis' sebanyak jumlah data yang ada di dalamnya. Selain itu perintah ini membutuhkan persyaratan kolom yang Anda ORDER BY -- dalam hal ini kolom 'kode' -- haruslah unik.

Kita bisa meningkatkan performa query dengan cara membagi solusi di atas menjadi dua langkah. Pertama, kita letakkan data row pada tabel 'penulis' ke dalam tabel sementara (temporary table) bersama dengan posisi ordinal berdasarkan kolom 'kode' pada tabel tersebut. Kita bisa melakukan hal tersebut dengan menggunakan function IDENTITY(). Mari kita lohat contohnya berikut ini.

SELECT
IDENTITY (int, 1, 1) AS rownum,
*
INTO
#tmppenulis
FROM
penulis
ORDER BY
kode

Setelah itu kita bisa melakukan query sederhana untuk menampilkan daftar penulis dari yang ke 6 sampai 10 dengan mengetikkan script seperti berikut ini.

SELECT
*
FROM
#tmppenulis
WHERE
rownum BETWEEN 6 AND 10

Referensi

  • Itzik Ben-Gan and Tom Moreau, Advanced Transact-SQL for SQL Server 2000, 2000, Apress.

Demikian tulisan singkat mengenai tips menampilkan row m ke n pada SQL Server. Semoga berguna bagi Anda semuanya. Jika ada komentar atau saran bisa dikirimkan melalui ariesa.rahardjo@gmail.com. Jika Anda memiliki ide atau tips menarik, silakan saja tulis dan kirimkan kepada kami melalui article@sony-ak.com. Untuk membaca tulisan menarik lainnya silakan menuju ke situs Sony AK Knowledge Center dengan alamat di www.sony-ak.com.

Terima kasih.




 Recommended articles
 

»

Tiga Peranan Penting Internet bagi Usaha Kecil Menengah (UKM) (5905)

»

Membuat Class Sederhana (Object Oriented Programming) pada Borland Delphi (3782)

»

Contoh Aplikasi Interfacing Pada Borland Delphi Menggunakan Parallel Port (10966)

»

8 Tips Keamanan Jaringan Nirkabel di Rumah Anda (4883)

»

Cara Praktis Memilih Domain dan Web Space Gratis di Internet (2589)

 Send your comments or suggestions
Full Name :
E-mail :
Comments :
 
 

  Privacy | Site Map | Advertise

  Copyright © 2003 - 2006 Sony AK Knowledge Center - all rights reserved

  info@sony-ak.com