Dans SAP HANA, comment puis-je générer une plage de nombres, par exemple de 1 à 10 ?

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

  •  21-12-2019
  •  | 
  •  

Question

Dans SAP HANA, je souhaite avoir une vue comportant une plage de nombres de 1 à 10, ou de 1 à n où n est n'importe quel nombre.Ainsi, lorsque je sélectionne dans la vue, je peux sélectionner n enregistrements pour obtenir les n premiers enregistrements de la plage.

J'ai pu créer une table avec 1000 lignes avec un ID qui s'incrémente en utilisant cette procédure stockée.Existe-t-il un moyen plus simple ?

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";
Était-ce utile?

La solution

L'utilisation d'un générateur est la manière préférée:

Insérer dans "Test_table" Sélectionnez Generated_Period_Start comme ID, '' comme nom de série_Generate_Integer (1,11001);

est beaucoup plus facile et plus rapide.

Autres conseils

Je pense for loop est plus facile que while.

FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top