Когда вы используете AS
для присвоения псевдонима столбцу, этот псевдоним недоступен в запросе - логически, применение псевдонимов к столбцам (почти) самая последняя часть оценки запроса .
Итак, если вы хотите, чтобы ваш ROW_NUMBER
с CTE был OVER
, что вы называете Followers
, вы должны выразить его в тех же терминах, что и сам столбец:
;with TH_Users as
(
SELECT [ID]
,[FullName]
,[UserName]
,[ImageName]
,dbo.GetUserFollowers(ID) AS Followers
, ROW_NUMBER() OVER (order by dbo.GetUserFollowers(ID) ) AS 'RowNumber'
from dbo.TH_Users
Where CultureID = @cultureID
)
Обратите внимание, что это не приведет к тому, что функция будет оцениваться больше, чем в настоящее время.
(я не проверял это)