2014-06-05 38 views
1

在SAP HANA中,我希望有一個數字範圍爲1到10或1到n的視圖,其中n是任意數字。所以當我從視圖中選擇時,我可以選擇n條記錄來獲取範圍中的前n條記錄。在SAP HANA中,如何生成一系列數字,例如1到10?

我能夠創建一個具有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

使用發生器是首選的方法:

INSERT INTO 「TEST_TABLE」 從SERIES_GENERATE_INTEGER選擇GENERATED_PERIOD_START作爲ID, '' 如NAME(1,1,1001);

更容易和更快。

2

我覺得for loopwhile容易。

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