在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";
有帮助吗?

解决方案

使用发电机是首选的:

插入“test_table”选择生成的agent_period_startais id,''从series_generate_integer(1,1001);

更容易且更快。

其他提示

我想 for loop 比...... while.

FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top