MSSQL从2行之间指定的联接表中选择条目

时间:2019-03-27 07:26:37

标签: c# sql sql-server

我的服务器上有2个表。 一种是存储文件信息(根,名称,用户ID,大小..) 另一个正在为每个用户ID存储电子邮件地址。

我想选择2个指定行之间的所有条目(例如,按表1中的文件大小排序)

我的代码:

select TOP 16 * from 
(
select Row_Number() over (order by [Table1].[File Size]) as RowIndex,
* from (SELECT Table1.*,Table2.[E-Mail]
FROM Table1 LEFT JOIN Table2 ON Table1.UserID = Table2.UserID 
ORDER BY Table1.[File Size])as joined
) 
as Sub
Where Sub.RowIndex >= 20

例如,从File Size的JOIN顺序中选择第20行之后的前16个条目

错误:

  

除非还指定了TOP,OFFSET或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效。

我该怎么办? 该查询用于显示c#的虚拟化数据网格视图的10万个条目的前16个条目。

1 个答案:

答案 0 :(得分:1)

从内部查询中删除ORDER BY Table1.[File Size]

select TOP 16 * from 
(
select Row_Number() over (order by [Table1].[File Size]) as RowIndex,
* from (SELECT Table1.*,Table2.[E-Mail]
FROM Table1 LEFT JOIN Table2 ON Table1.UserID = Table2.UserID 
)as joined
) 
as Sub
Where Sub.RowIndex >= 20
ORDER BY Table1.[File Size]