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>
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>
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!