Menguasai ROWNUM untuk Penomboran SQL Oracle
Panduan ini menjelaskan penggunaan ROWNUM yang berkesan untuk penomboran dalam pertanyaan Oracle SQL. Kami akan menangani masalah biasa dan menunjukkan amalan terbaik.
*Mengapa `PILIH DARI Orang DI MANA rownum > 100 DAN rownum < 200` Gagal**
Penugasan ROWNUM berlaku selepas penapisan predikat tetapi sebelum pengisihan atau pengagregatan. Oleh kerana ROWNUM dinaikkan secara berurutan selepas tugasan, syarat seperti rownum > 1 akan sentiasa mengembalikan set kosong. Baris pertama menerima ROWNUM = 1 dan syaratnya tidak pernah dipenuhi.</p>
<p><strong>Keterbatasan <code>SELECT ... FROM ... WHERE rownum BETWEEN lowerBound AND upperBound
Versi Oracle Pra-12c tidak menyokong pendekatan BETWEEN
langsung ini untuk penomboran. Walau bagaimanapun, Oracle 12c dan versi yang lebih baru menawarkan sintaks OFFSET ... FETCH
unggul (cth., SELECT ... FROM ... OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY
).
Menindas Lajur ROWNUM
Untuk mengelak daripada memaparkan lajur ROWNUM, senaraikan lajur yang dikehendaki secara eksplisit dalam pernyataan SELECT
anda dan bukannya menggunakan SELECT *
. Untuk keperluan yang kurang kerap, perintah SQL*Plus NOPRINT
boleh menyembunyikan lajur yang tidak diingini buat sementara waktu.
Memastikan Penomboran Tepat dengan ROWNUM
Dilaksanakan dengan betul, ROWNUM menyediakan penomboran yang tepat. Perkara utama ialah ORDER BY
dahulu data anda mengikut urutan yang anda inginkan dan kemudian gunakan ROWNUM untuk memilih subset baris tertentu. Ciri tugasan berurutan ROWNUM ini memerlukan langkah pesanan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan ROWNUM dengan Berkesan untuk Penomboran dalam Pertanyaan SQL Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!