Wie kann ich in SAP HANA einen Zahlenbereich generieren, z. B. von 1 bis 10?

StackOverflow https://stackoverflow.com//questions/24051074

  •  21-12-2019
  •  | 
  •  

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";
War es hilfreich?

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
scroll top