ديناميكي "TOP: المعلمة" في Teradata Macro
سؤال
أحتاج إلى تغيير الماكرو بالطريقة التي يمكن بها تمرير المعلمة للتحكم في حجم أقصى لمجموعة النتائج.
كانت فكرتي هذه 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;
);
لا تنتمي إلى StackOverflow