Heim > Datenbank > MySQL-Tutorial > Wie kann ich die ersten N positiven Ganzzahlen mit einer SQL-SELECT-Anweisung generieren?

Wie kann ich die ersten N positiven Ganzzahlen mit einer SQL-SELECT-Anweisung generieren?

DDD
Freigeben: 2024-12-24 14:35:15
Original
339 Leute haben es durchsucht

How Can I Generate the First N Positive Integers with a SQL SELECT Statement?

Generieren der ersten N positiven ganzen Zahlen mit SQL SELECT

Problem:

Erhalten der ersten Die Verwendung von N positiven Ganzzahlen ausschließlich mit einer Standard-SQL-SELECT-Anweisung stellte eine Herausforderung dar. Gibt es eine Problemumgehung, ohne sich auf eine Zähltabelle zu verlassen?

Antwort:

Während dem allgemeinen SQL eine native Methode für diesen Vorgang fehlt, bieten mehrere große Datenbanksysteme Lösungen an:

Oracle:

SELECT level
FROM dual
CONNECT BY level <= 10
Nach dem Login kopieren

SQL Server:

WITH q AS
(
SELECT 1 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num < 10
)
SELECT *
FROM q
Nach dem Login kopieren

PostgreSQL:

SELECT num
FROM generate_series(1, 10) num
Nach dem Login kopieren

MySQL:

Im Gegensatz zu den oben genannten Systemen, MySQL fehlt ein ähnlicher Mechanismus. Um dieses Problem zu umgehen, können Sie das folgende Skript verwenden, um eine temporäre Tabelle zu erstellen und diese mit den gewünschten Zahlen zu füllen:

CREATE TABLE filler (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
) ENGINE=Memory;

CREATE PROCEDURE prc_filler(cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= cnt DO
INSERT
INTO filler
SELECT _cnt;
SET _cnt = _cnt + 1;
END WHILE;
END
$$
Nach dem Login kopieren

Um das Skript zu verwenden, rufen Sie die Prozedur mit der gewünschten Anzahl an Ganzzahlen auf:

CALL prc_filler(10);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die ersten N positiven Ganzzahlen mit einer SQL-SELECT-Anweisung generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage