Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menjana Urutan Nombor Antara Dua Nilai Diberi Menggunakan SQL?

Bagaimanakah Saya Boleh Menjana Urutan Nombor Antara Dua Nilai Diberi Menggunakan SQL?

DDD
Lepaskan: 2025-01-20 03:06:10
asal
552 orang telah melayarinya

How Can I Generate a Sequence of Numbers Between Two Given Values Using SQL?

Menjana Julat Nombor dengan SQL

Perlu membuat urutan nombor antara dua nilai yang ditentukan (cth., 1000 dan 1050) dalam pangkalan data SQL? Artikel ini menunjukkan kaedah yang cekap menggunakan operasi VALUES dan JOIN.

Idea teras adalah untuk menjana satu set nombor menggunakan VALUES dan kemudian gunakan JOIN untuk menggabungkannya ke dalam julat yang lebih besar. Pendekatan ini dengan mudah berskala untuk menjana ratusan ribu baris dengan mengembangkan pertanyaan.

Inilah penyelesaian padat:

<code class="language-sql">WITH x AS (SELECT n FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) v(n))
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
FROM x ones, x tens, x hundreds, x thousands
ORDER BY 1</code>
Salin selepas log masuk

Kaedah yang lebih jelas ialah:

<code class="language-sql">SELECT ones.n + 10*tens.n + 100*hundreds.n + 1000*thousands.n
FROM (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) tens(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) hundreds(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) thousands(n)
ORDER BY 1</code>
Salin selepas log masuk

Kedua-dua contoh boleh disesuaikan untuk menjana julat tertentu dengan menambahkan klausa WHERE. Untuk kegunaan kerap, pertimbangkan untuk mencipta fungsi bernilai jadual untuk kebolehgunaan semula.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Urutan Nombor Antara Dua Nilai Diberi Menggunakan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan