Given the following 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
I would like to set a parameter, @ActualNumberOfResults to the value of TOP(1) ActualNumberOfResults that is returned from the CTE.
I used the following, after the CTE, but seems repetitive:
SELECT @ActualNumberOfResults = COUNT(*)
FROM ItemData
WHERE CONTAINS(Title, @FTSSearchTerm )
AND WebsiteID=@WebsiteID
How can I accomplish this?
Demo on SQLFiddle