في النسغ هناء كيف يمكنني توليد مجموعة من الأرقام, على سبيل المثال من 1 إلى 10?

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

  •  21-12-2019
  •  | 
  •  

سؤال

في ساب هناء أود أن يكون وجهة نظر التي لديها مجموعة من عدد من 1 إلى 10 ، أو 1 إلى ن حيث ن هو أي عدد.لذلك عندما أختار من العرض يمكنني تحديد سجلات ن للحصول على أول سجلات ن من النطاق.

كنت قادرا على إنشاء جدول مع 1000 الصفوف مع معرف أن الزيادة باستخدام هذا الإجراء المخزن.هل هناك طريقة أسهل?

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" حدد Goded_period_Start كمعرف، "اسم المستخدم من Series_Generate_interper (1،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