Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menjana Julat Nombor dalam SQL Hanya Menggunakan Pertanyaan?

Bagaimanakah Saya Boleh Menjana Julat Nombor dalam SQL Hanya Menggunakan Pertanyaan?

Barbara Streisand
Lepaskan: 2025-01-20 03:16:13
asal
591 orang telah melayarinya

How Can I Generate a Range of Numbers in SQL Using Only Queries?

Pertanyaan SQL tulen untuk menjana jujukan angka

Dalam SQL, menggunakan nilai tidak berterusan (VALUES kata kunci) dan operasi JOIN, anda boleh menjana urutan nombor dalam julat yang ditentukan.

Penyelesaian mudah:

<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

Skim ini menjana julat nombor dengan mencipta produk Cartesan empat nilai yang mewakili unit, puluh, ratus dan ribuan. Fungsi ROW_NUMBER() memberikan nombor baris unik dalam susunan yang dikehendaki.

Pelan terperinci:

<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

Skim ini mengira nilai berangka secara eksplisit dengan menambahkan nilai dalam unit, puluh, ratusan dan ribuan tempat. Kedua-dua senario boleh dikembangkan dengan klausa WHERE untuk menentukan julat nombor. Untuk skop yang lebih besar, fungsi bernilai jadual boleh dibuat untuk menggunakan semula kod.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Julat Nombor dalam SQL Hanya Menggunakan Pertanyaan?. 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