我在查看商店列表时使用存储过程进行页面导航。我只有一个表Store
列Name
和S_Id
。
这是我的查询:
SELECT Stores.Name
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY Stores.S_Id) AS rownum ,
Stores.Name
FROM Stores
)AS ordered
WHERE ordered.rownum BETWEEN [someValue] AND [someValue]
但是当我尝试保存我的程序时,出现错误:
无法绑定复合标识符 Stores.Name
我看过很多话题,但找不到问题所在。如果我使用 LINQ 执行此操作,我将尝试如下操作:
(select name from Stores order by S_Id).Skip(n).Take(m) .
您的子查询为数据定义了一个新名称 - ordered
- 因此您需要使用该新名称而不是stores
:
SELECT
ordered.Name <=== you're selecting from the subquery which is called "ordered" - use that name!!
FROM
(SELECT
ROW_NUMBER() OVER (ORDER BY Stores.S_Id) AS rownum,
Stores.Name
FROM Stores
) AS ordered
WHERE
ordered.rownum BETWEEN [someValue] AND [someValue]