【问题标题】:In SAP HANA how can I generate a range of numbers, eg from 1 to 10?在 SAP HANA 中,我如何生成一系列数字,例如从 1 到 10?
【发布时间】:2014-06-05 03:18:16
【问题描述】:

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

【问题讨论】:

    标签: sap hana


    【解决方案1】:

    使用生成器是首选方式:

    INSERT INTO "TEST_TABLE" SELECT GENERATED_PERIOD_START 作为 ID,'' 作为 NAME from SERIES_GENERATE_INTEGER(1,1,1001);

    更容易和更快。

    【讨论】:

      【解决方案2】:

      我认为for loopwhile 更容易。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多