Monday, March 19, 2007

Order By didalam view dan function dalam SQL Server 2000
By: pieter_edison@yahoo.com

Contoh Kasus :
Misalkan anda menggunakan SQL Server 2000 untuk keperluan data anda, kemudian
Didalam database anda terdapat suatu table A dan table B dimana field ID di Tabel A tersebut relationship dengan field IDCol di TabelB

Tabel A tersebut terdiri dari Field : ID, Nama

Tabel B tersebut terdiri dari Field : IDCol, NamaEx

Suatu saat, anda disuruh untuk mendesign dan menarik informasi dari kedua table tersebut ( Tabel A dan table B) tersebut dengan pengurutan berdasarkan Field NamaEx dari Tabel B dimana anda menggunakan view atau function didalam kode sql anda.

CREATE VIEW GABUNG
AS
SELECT A.ID, A.Nama, B.IDCol, B.NamaEx FROM A A INNER JOIN B B
ON A.ID=B.IDCol
ORDER BY B.NamaEx

Atau bisa juga anda menggunakan function dimana function anda mengembalikan table.

Jika anda menggunakan syntax diatas dan anda execute query hasil tersebut akan menampilkan informasi pesan kesalahan :

The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.

Hal ini disebabkan karena syntax ORDER BY tidak diperbolehkan didalam penggunaan function ataupun view.

Terus mungkin anda bisa mengakalinya dengan meng-order data tersebut di kode client anda..

Sebenarnya syntax ORDER BY ini bisa digunakan dalam VIEW ataupun FUNCTION,
Tetapi sekali lagi kita menggunakan trik tertentu.

Trik tersebut kita tambahkan perintah TOP 100 PERCENT saja, maka otomatis VIEW OR FUNCTION anda akan diorder.

Coba anda ganti view diatas dengan kode sebagai berikut :

CREATE VIEW GABUNG
AS
SELECT TOP 100 PERCENT A.ID, A.Nama, B.IDCol, B.NamaEx FROM A A INNER JOIN B B
ON A.ID=B.IDCol
ORDER BY B.NamaEx

Maka syntax sql anda akan dinyatakan benar, dan hasil yang diperoleh data anda akan diorder sesuai dengan permintaan anda tanpa ada kesalahan sintaks lagi.


Demikian hasil yang diperoleh dan akhir dari isi tutorial ini.

Best Regards,
Pieter

0 Comments:

Post a Comment

<< Home