Question

Je dois modifier une macro de la manière qu'un paramètre peut être passé pour contrôler la taille maximale du jeu de résultats.

Mon idée était ce SQL:

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

Mais tout ce que je get est le message:

  

[SQLState 42000] Erreur de syntaxe, quelque chose comme prévu un nombre entier ou décimal compris entre 'top' et ':'.

Il est impossible pour moi de faire cela d'une autre manière qu'une macro.

Comment puis-je faire?

Était-ce utile?

La solution

J'ai trouvé une façon de le faire:

REPLACE MACRO myMacro
( maxRows INTEGER DEFAULT 100 )
AS
(
    SELECT 
        ROW_NUMBER() OVER (ORDER BY myColumn) AS RowNo, 
        myColumn
    FROM myTable
    WHERE RowNo <= :maxRows;
);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top