Wie kann ich in SAP HANA einen Zahlenbereich generieren, z. B. von 1 bis 10?
Frage
In SAP HANA möchte ich eine Ansicht haben, die einen Zahlenbereich von 1 bis 10 oder 1 bis n hat, wobei n eine beliebige Zahl ist.Wenn ich also aus der Ansicht auswähle, kann ich n Datensätze auswählen, um die ersten n Datensätze aus dem Bereich zu erhalten.
Mit dieser gespeicherten Prozedur konnte ich eine Tabelle mit 1000 Zeilen mit einer ID erstellen, die inkrementiert wird.Gibt es einen einfacheren Weg?
DROP PROCEDURE "DEMO_PROC";
CREATE PROCEDURE "DEMO_PROC"(
IN ID INTEGER )
LANGUAGE SQLSCRIPT AS
/*********BEGIN PROCEDURE SCRIPT ************/
BEGIN
DECLARE
START_ID INTEGER;
DROP TABLE TEST_TABLE;
CREATE COLUMN TABLE "TEST_TABLE" (ID INTEGER, NAME VARCHAR(10));
START_ID := 0;
WHILE START_ID < 1000 DO
START_ID := START_ID + 1;
INSERT INTO "TEST_TABLE" VALUES(:START_ID, '');
END WHILE;
END;
CALL "DEMO_PROC"(1);
SELECT * FROM "TEST_TABLE";
Lösung
mit einem generator ist der bevorzugte Weg:
Insert in "test_table" Select generiert_period_start als ID, '' als Name von Series_Generate_integer (1,1.1001);
ist viel einfacher und schneller.
Andere Tipps
Ich denke for loop
ist einfacher als while
.
FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow