Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Meniru Klausa LIMIT MySQL dengan Berkesan dalam Pertanyaan Oracle SQL?

Bagaimana untuk Meniru Klausa LIMIT MySQL dengan Berkesan dalam Pertanyaan Oracle SQL?

Barbara Streisand
Lepaskan: 2025-01-25 08:47:09
asal
962 orang telah melayarinya

How to Effectively Emulate MySQL's LIMIT Clause in Oracle SQL Queries?

Menerap LIMIT MySQL dalam Oracle SQL

Klausa

MySQL LIMIT memudahkan mendapatkan semula bilangan baris tertentu selepas membuat pesanan, penting untuk penomboran data. Oracle, bagaimanapun, memerlukan pendekatan yang berbeza.

Mengapa ROWNUM Tidak Cukup

Walaupun pseudocolumn ROWNUM Oracle mungkin kelihatan seperti penyelesaian, ia digunakan sebelum klausa ORDER BY. Ini bermakna menggunakan ROWNUM untuk julat baris tersusun menghasilkan hasil yang tidak dapat diramalkan.

Pendekatan Subkueri Berkesan

Kaedah yang boleh dipercayai melibatkan subkueri untuk memesan data dahulu, kemudian memohon ROWNUM untuk mengehadkan:

<code class="language-sql">SELECT *
FROM (
    SELECT *
    FROM emp
    ORDER BY sal DESC
)
WHERE ROWNUM <= 5;</code>
Salin selepas log masuk

Menentukan Sempadan Atas dan Bawah

Untuk kawalan yang lebih tepat, menyatakan kedua-dua nombor baris minimum dan maksimum memerlukan pertanyaan yang lebih kompleks:

<code class="language-sql">SELECT *
FROM (
    SELECT a.*, ROWNUM rnum
    FROM (
        SELECT * FROM <your_table> ORDER BY <your_column>
    ) a
    WHERE ROWNUM <= :MAX_ROW_TO_FETCH
)
WHERE rnum >= :MIN_ROW_TO_FETCH;</code>
Salin selepas log masuk

Penambahan Oracle 12c dan Kemudian

Oracle 12c dan versi yang lebih baru menawarkan penyelesaian yang lebih bersih menggunakan FETCH FIRST dan OFFSET:

<code class="language-sql">-- Retrieve the first 10 rows
SELECT *
FROM sometable
ORDER BY name
FETCH FIRST 10 ROWS ONLY;

-- Retrieve rows 20-30
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;</code>
Salin selepas log masuk

Sintaks diperkemas ini menyediakan cara yang lebih intuitif untuk mengurus had baris dan mengimbangi dalam Oracle.

Atas ialah kandungan terperinci Bagaimana untuk Meniru Klausa LIMIT MySQL dengan Berkesan dalam Pertanyaan Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan