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
DDDOriginal
2024-12-24 14:35:15365Durchsuche

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

SQL Server:

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

PostgreSQL:

SELECT num
FROM generate_series(1, 10) num

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

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

CALL prc_filler(10);

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!

Stellungnahme:
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