In SAP HANA come posso generare una gamma di numeri, ad esempio da 1 a 10?

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

  •  21-12-2019
  •  | 
  •  

Domanda

In SAP HANA Desidero avere una vista che ha una gamma di numeri da 1 a 10 o 1 a n dove n è qualsiasi numero.Quindi, quando selezionando dalla vista, posso selezionare n record per ottenere i primi record n dall'intervallo.

Sono stato in grado di creare un tavolo con 1000 righe con un ID che incrementa utilizzando questa procedura memorizzata.C'è un modo più semplice?

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";
.

È stato utile?

Soluzione

L'utilizzo di un generatore è il modo preferito:

Inserisci in "Test_TAble" Selezionare Generated_Period_Start come ID, "come nome da serie_Generate_INTEGER (1.1.1.1001);

è molto più facile e veloce.

Altri suggerimenti

Penso che for loop sia più facile da while.

FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top