加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql – 怎样从SELECT语句的前一个功效行获取值?

发布时间:2021-04-02 14:38:35 所属栏目:编程 来源:网络整理
导读:假如我们有一个名为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)]
譬喻,我们在个中有一些行
ID – 值
1 —— 70
2 —— 100
3 —— 150
8 —— 200
20 —– 250
45 —– 280
而且我们想要建设一个SQL查询,以获取每个行ID,值和前面的行值,个中数据表现如下
ID —值— Prev_Value
1 —– 70 ———- 0
2 —– 100 ——– 70
3 —– 150 ——– 100
8 —– 200 ——– 150
20 —- 250 ——– 200
45 —- 280 ——– 250

我做了以下查询,但我以为它在大量数据中的示意很是糟糕

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

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读