我的 .NET Framework API 项目有 9-10 个 API。这些 API 遇到以下错误。
执行超时已过期。操作完成之前超时时间已过,或者服务器没有响应。
我不知道这个错误的原因是什么。主要可能是由于 SQL Server 查询正在处理具有超过 100000 条记录和 191 列的表。这是我的主要怀疑。
执行 SQL 查询时出现上述错误。
您是否希望选择 id2 值与该表中第二个不同 Id2 值匹配的行?
如果是这样,您需要对不同的 id2 值进行隔离和编号,过滤行号 2,然后将该连接连接回原始表。
SELECT A.*
FROM (
SELECT Id2, ROW_NUMBER() OVER(ORDER BY Id2) AS rn
FROM TableA
GROUP BY Id2
) S
JOIN TableA A ON A.Id2 = S.Id2
WHERE S.rn = 2
上面将选择匹配
Id2 = 4
的行。
或者,将 Id2 选择器包装在子查询中,然后在 where 子句中使用该子查询。
SELECT A.*
FROM TableA A
WHERE A.Id2 = (
SELECT S.Id2
FROM (
SELECT Id2, ROW_NUMBER() OVER(ORDER BY Id2) AS rn
FROM TableA
GROUP BY Id2
) S
WHERE S.rn = 2
)
以上两项的结果:
Id1 | Id2 | Id3 | 姓名 | 日期 |
---|---|---|---|---|
3 | 4 | 4A | 测试D | 2024-04-06 |
3 | 4 | 4A | 测试E | 2024-04-07 |
4 | 4 | 4A | 测试D | 2024-04-06 |
4 | 4 | 4A | 测试E | 2024-04-07 |
请参阅 此数据库<>fiddle 进行演示