在SAP HANA中,如何生成一系列数字,例如从1到10?

时间:2014-06-05 03:18:16

标签: sap hana

在SAP HANA中,我希望视图的数字范围为1到10,或者1到n,其中n是任意数字。因此,当我从视图中选择时,我可以选择n个记录来获取范围中的前n个记录。

我能够创建一个包含1000行的表,其中ID通过使用此存储过程递增。有更简单的方法吗?

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

2 个答案:

答案 0 :(得分:2)

我认为for loopwhile更容易。

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

答案 1 :(得分:2)

使用生成器是首选方式:

INSERT INTO“TEST_TABLE”选择GENERATED_PERIOD_START作为ID,''作为来自SERIES_GENERATE_INTEGER(1,1,1001)的NAME;

更容易,更快。