sql – 如何从SELECT语句的前一个结果行获取值?
发布时间:2021-04-01 22:31:22 所属栏目:MsSql教程 来源:网络整理
导读:如果我们有一个名为FollowUp的表并且有行[ID(int),Value(Money)] 例如,我们在其中有一些行 ID – 值 1 —— 70 2 —— 100 3 —— 150 8 —— 200 20 —– 250 45 —– 280 并且我们想要创建一个SQL查询,以获取每个行ID,值和前面的行值,其中数据显示如下 ID
|
如果我们有一个名为FollowUp的表并且有行[ID(int),Value(Money)]
我做了以下查询,但我认为它在大量数据中的表现非常糟糕 SELECT FollowUp.ID,FollowUp.Value,(
SELECT F1.Value
FROM FollowUp as F1 where
F1.ID =
(
SELECT Max(F2.ID)
FROM FollowUp as F2 where F2.ID < FollowUp.ID
)
) AS Prev_Value
FROM FollowUp
那么有人可以帮我找到解决这个问题的最佳解决方案吗? 解决方法这个sql应该比你上面的那个更好,虽然这些类型的查询往往有点性能密集……所以你可以放在它们中限制你正在看的数据集的大小将有很大帮助.例如,如果您正在查看特定日期范围,请将其放入.SELECT followup.value,( SELECT TOP 1 f1.VALUE
FROM followup as f1
WHERE f1.id<followup.id
ORDER BY f1.id DESC
) AS Prev_Value
FROM followup
HTH (编辑:均轻资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- exchange-2007 – 何时在Exchange 2007数据库上运行eseutil
- sql – 具有Desc / Asc排序的Order By子句的Case语句
- 逻辑删除表与数据库同步和软删除方案中的已删除标志
- 在PLSQL SELECT语句中使用变量
- sql server将datetime转换为另一个时区?
- sql – 为什么UNION比OR语句更快
- sql-server-2005 – 将数据类型nvarchar转换为datetime时出
- sql-server – 什么时候创建STATISTICS而不是创建索引更好?
- sql-server – 服务代理已备份,现在正在接收,但似乎没有处理
- sql-server – 在SAN环境中对SQL索引进行碎片整理是否有任何
站长推荐
热点阅读


