次の SQL があるとします。
;WITH Results AS
(
SELECT ItemListID, Title,
ROW_NUMBER() OVER(ORDER BY ItemListID DESC) as intRow,
COUNT(ItemListID) OVER() AS ActualNumberOfResults
FROM ItemData
WHERE FREETEXT(Title, @FTSSearchTerm)
AND WebsiteID = @WebsiteID
AND ContentTypeID = @ContentTypeID
AND GeoID2 = @GeoID
)
SELECT * FROM Results
WHERE intRow BETWEEN @intStartRow AND @intEndRow
ORDER BY ItemListID DESC
SELECT @NumberOfResultsReturned = @@ROWCOUNT
パラメータ @ActualNumberOfResults を CTE から返される TOP(1) ActualNumberOfResults の値に設定したいと思います。
CTEの後に次を使用しましたが、繰り返しのようです:
SELECT @ActualNumberOfResults = COUNT(*)
FROM ItemData
WHERE CONTAINS(Title, @FTSSearchTerm )
AND WebsiteID=@WebsiteID
どうすればこれを達成できますか?