1

当我查看商店列表时,我正在使用存储过程进行页面导航。我只有一张带有&Store列的表。NameS_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) .
4

1 回答 1

1

您的子查询为您的数据定义了一个新名称 -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] 
于 2012-06-18T16:42:22.843 回答