Connect with Facebook

Wednesday, December 24, 2008

Analytical Function w/ rowid

Pelajaran hari ini:
Jangan pernah menggunakan dan mengkombinasikan Single Row Character Functions spt pad, rpad, dll dengan analytical function spt: rank().., dense_rank()..
Hasil query-nya tidak akan benar.

Perhatikan query berikut ini:

Select y.Rowid As rid,
Y.UO || Y.KOTAMA || Y.SATPOR || '0000' ||
Lpad(
Rank()
Over (Partition By Y.UO, Y.KOTAMA, Y.SATPOR
Order By noreg, y.Rowid),
3,
'0'
)
As no_reg,
..
..


Tapi sebaiknya menjadi:

Select y.Rowid As rid,
y.uo ||
y.kotama ||
y.satpor ||
'0000' ||
Lpad('0', 3-length(Rank() Over (Partition By y.uo, y.kotama, y.satpor Order By Rowid)), '0') ||
Rank() Over (Partition By y.uo, y.kotama, y.satpor Order By Rowid)
As no_reg,
..
..

0 comments:

Post a Comment