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

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

Mary-Kate Olsen
Freigeben: 2024-12-19 11:38:09
Original
667 Leute haben es durchsucht

How Can I Retrieve the First N Positive Integers Using Only a SQL SELECT Statement?

Abrufen der ersten N positiven Ganzzahlen mit SQL SELECT

Gelegentlich besteht die Anforderung, die ersten N positiven Ganzzahlen ausschließlich mit einer Standard-SQL-SELECT-Anweisung zu extrahieren. Es ist jedoch von entscheidender Bedeutung, die Durchführbarkeit einer solchen Anfrage ohne eine vorab ausgefüllte Zähltabelle zu ermitteln.

Standard-SQL-Ansatz

Im Bereich von Standard-SQL ist das direkte Abrufen von a Sequentielle Reihen positiver Ganzzahlen ohne Zähltabelle sind nicht erreichbar.

MySQL-spezifisch Lösungen

MySQL verfügt nicht über eine native Funktion zum Generieren fortlaufender Zahlen, ermöglicht jedoch die Erstellung von Dummy-Rowsets, um diese Einschränkung zu umgehen. Betrachten Sie die folgenden Beispiele aus verschiedenen Datenbankverwaltungssystemen:

  • 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-Einschränkungen

Eine vergleichbare Funktion stellt MySQL leider nicht zur Verfügung, was als Manko gewertet werden kann. Eine Problemumgehung kann darin bestehen, eine benutzerdefinierte Prozedur zu verwenden, um eine temporäre Tabelle mit der gewünschten Anzahl von Zeilen zu füllen und so den späteren Abruf zu erleichtern. Zum Beispiel:

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

CALL prc_filler(10);
SELECT  * FROM filler;
Nach dem Login kopieren

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

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage