我需要更改一个宏,以便可以传递参数来控制结果集的最大大小。
我的想法是这个SQL:
REPLACE MACRO myMacro
( maxRows INTEGER DEFAULT 100 )
AS
(
SELECT TOP :maxRows
FROM myTable;
);
但我得到的只是信息:
[SQLState 42000]语法错误,预期“top”和“:”之间的整数或十进制数字。
除了宏之外,我不可能以任何其他方式执行此操作。
我该怎么做?
答案 0 :(得分:3)
我找到了一种方法:
REPLACE MACRO myMacro
( maxRows INTEGER DEFAULT 100 )
AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY myColumn) AS RowNo,
myColumn
FROM myTable
WHERE RowNo <= :maxRows;
);