To nelze udělat (pokud vím). Existují tři zástupná řešení, jedno, které vám umožní ponechat jako dvě odlišné sady výsledků, a další dvě, která vyžadují sloučení výsledků do stejné sady výsledků (buď jako další řádek nebo další sloupec).
- Namísto CTE vložte výsledky do dočasné tabulky a poté z ní dotazujte.
- Sloučit počet do skutečné sady výsledků jako další řádek:použijte
UNION ALL
a dejte řádku počtu vhodné hodnoty pro ID, Name a RowID, abyste je mohli extrahovat ze zbytku dat - Přidejte
SELECT COUNT(*)
do primární sady výsledků jako další sloupec sCROSS JOIN
nebo podobně.
V tomto případě to můžete provést změnou primárního dotazu na:
SELECT Id, Name, RowId, countTable.totalRows
FROM ResultsTemp
CROSS JOIN (SELECT COUNT(*) AS totalRows FROM ResultsTemp) AS countTable
GROUP BY Id, Name, RowId
HAVING RowId BETWEEN @StartRow and (@StartRow + @MaxRows);
Nemohu ručit za výkon – museli byste se profilovat.