c# - MSSQL 从行之间指定的 2 个连接表中选择条目
问题描述
我的服务器上有 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
例如,从 JOIN Order by 中选择第 20 行之后的前 16 个条目File Size
错误:
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP、OFFSET 或 FOR XML。
我能做些什么?此查询用于显示 C# 的虚拟化 datagridview 的超过 100k 个条目的前 16 个条目。
解决方案
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]
推荐阅读
- vue.js - 无法使用 Gitlab 页面部署 VueJS
- c# - 使用 nRF24L01p 在 Arduino 和 Raspberry Pi 之间进行通信
- spring - 每个请求的弹簧配置/属性不同
- verilog - 在采样和检查之间添加延迟
- java - HikariCp 池获取未知系统变量“tx_isolation”异常
- javascript - 在 Angular 中展平嵌套数组以进行类似于 linq 的查询
- git - 为什么 GitHub 会添加个人访问令牌,即使我没有生成新令牌?
- r - R - 如何在两个向量中找到共同的逻辑值
- python - 如何将烧瓶端口从容器发布到主机
- c++ - C++ 继承 - 无法在 cpp 文件中定义方法