سؤال

أحتاج إلى تغيير الماكرو بالطريقة التي يمكن بها تمرير المعلمة للتحكم في حجم أقصى لمجموعة النتائج.

كانت فكرتي هذه SQL:

REPLACE MACRO myMacro
( maxRows INTEGER DEFAULT 100 )
AS
(
    SELECT TOP :maxRows
    FROM myTable;
);

لكن كل ما أحصل عليه هو الرسالة:

SQLSTATE 42000] خطأ في بناء الجملة ، توقع شيء مثل عدد صحيح أو عدد عشري بين "أعلى" و ":".

ليس من الممكن بالنسبة لي القيام بذلك بأي طريقة أخرى غير الماكرو.

كيف أقوم بذلك؟

هل كانت مفيدة؟

المحلول

لقد وجدت طريقة للقيام بذلك:

REPLACE MACRO myMacro
( maxRows INTEGER DEFAULT 100 )
AS
(
    SELECT 
        ROW_NUMBER() OVER (ORDER BY myColumn) AS RowNo, 
        myColumn
    FROM myTable
    WHERE RowNo <= :maxRows;
);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top