游标用前一行和当前行的值更新行

2024-02-01

各位查询作者,

我有一个表如下:

myTable t1
col2 col3
 2    1
 3    0
 4    0
 5    0
 6    0

我想用前一行中 col3 的值加上当前行中 col2 的值来更新 col3 上的每个零。所以我的桌子会像下面这样:

myTable t1
col2 col3
 2    1 
 3    4  (1+3)
 4    8  (4+4)
 5    13 (5+8) 
 6    19 (6+13)

我缺少这里的逻辑,也许是短视。我用光标尝试如下:

DECLARE @var3 FLOAT

DECLARE cursor3 CURSOR FOR
SELECT col2, col3 FROM table1
FOR UPDATE OF col3
OPEN cursor3


FETCH FIRST FROM cursor3
WHILE (@@FETCH_STATUS > -1)
BEGIN
 UPDATE @table1
 SET col3 = isnull(@var3, 0) + isnull(col2, 0)
 WHERE CURRENT OF cursor3
 FETCH NEXT FROM cursor3 INTO @var3
END

但这是错误的。 有任何想法吗?

提前致谢。


好的,试试这个。

CREATE TABLE MyTable (Id INT Identity, Col2 int, Col3 int)

INSERT INTO MyTable (Col2, Col3)
VALUES (2,1), (3,0), (4,0),(5,0),(6,0)

SELECT * from MyTable

WHILE (SELECT COUNT(*) FROM MyTable WHERE Col3=0) > 0
BEGIN
    UPDATE TOP (1) MyTable
    SET CoL3 = (Mytable.col2 + (select col3 from mytable t2 where (t2.id = mytable.id-1)))
    WHERE Col3 = 0
END

SELECT * from MyTable

Uses a WHILE在大多数情况下循环应该比光标更快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游标用前一行和当前行的值更新行 的相关文章

随机推荐

  • 是不是更喜欢预增量而不是后增量?

    过去的情况是 预增量是首选 因为类上重载的后增量需要返回表示增量之前对象状态的临时副本 看来这不再是一个严重的问题 只要内联到位 因为我的旧 C 编译器 GCC 4 4 7 似乎将以下两个函数优化为相同的代码 class Int publi
  • 静态和默认构造函数

    非静态类可以同时具有静态构造函数和默认构造函数 这两个构造函数有什么区别 我什么时候应该只使用静态或使用默认构造函数的静态 静态构造函数在您第一次访问类的实例之前为每个 AppDomain 运行一次 您可以使用它来初始化静态变量 另一方面
  • MVC3 不显眼的验证扩展;条款和条件复选框

    我还看过其他一些关于此的帖子 MVC 对复选框的不显眼验证不起作用 https stackoverflow com questions 6923430 mvc unobtrusive validation on checkbox not w
  • jdbc 中的未知数据库

    我正在使用 JDBC 而且是新手 但我不断收到此运行时异常 connecting to psysical database com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException
  • 如果任何特定列集中的值满足特定条件,则返回整行

    我有一个数据框 我想保留任何价格列大于某个值的行 水果 这是一个可重现的示例 您可以将其直接复制并粘贴到 R 中 fruit c apple orange banana berry 1st col ID c 123 3453 4563 32
  • 如何使用新 PostgreSQL JSON 数据类型中的字段进行查询?

    我正在寻找 PostgreSQL 9 2 中新 JSON 函数的一些文档和 或示例 具体来说 给定一系列 JSON 记录 name Toby occupation Software Engineer name Zaphod occupati
  • 如何将 Kentico 实例复制到本地计算机?

    我刚刚开始了一个新职位 接替了一位突然离职的开发人员 该开发人员正在从事基于 Kentico CMS 的项目 我对 ASP 和 Kentico 完全不熟悉 所以这里的答案需要针对初学者量身定制 我熟悉其他语言 PHP Ruby SQL 等
  • 如何通过保留键的数据类型将json序列化为另一个json?

    我有像这样的原始 JSON 字符串 其中有键和值 如下所示 u string 1235 p 2047935 client id string 5 origin null item condition null country id int
  • 传递给 matplotlib.date2num 的时间戳:“str”对象没有属性“toordinal”

    有一个带有时间戳的数组 格式 Y M D H M S 从文本文件收集 我想用 matplotlib 将这些绘制在子图中 但我无法让它发挥作用 我在想这个 import numpy as np import datetime import m
  • 将命令行参数传递给 ant

    我对 ant 比较陌生 在学校我有一个任务是做构建文件 我的问题之一是将其名称 或路径 作为 ant 参数的文件复制到 foldercopy 我需要做类似的事情 ant cpfile 文件 txt 因此ant会将file txt复制到 fo
  • Cucumber Scenario Outline 的示例表中是否可以有空值? [复制]

    这个问题在这里已经有答案了 这是我的场景大纲中的示例表 有些没有价值 这可能吗 Examples ID UserName Password Contact1 Number ID1 username1 password1 Phone 111
  • protobuf-net 并使用接口序列化链表

    我遇到了 protobuf net 的问题 并将其缩小到这个最简单的情况 我想要一个链表类型结构 其中一个类具有相同类型的属性 当我序列化它时 它效果很好 但是 如果类型是接口而不是类 我会收到以下错误 一旦为 ConsoleApplica
  • 单击链接时如何切换复选框?

    我正在尝试做一个非常简单的HTML 电子邮件中的复选框 hack https youtu be 38pcplCDOng进行一些基本的电子邮件内交互 像下面这样
  • Node.js 大型应用程序的可靠性

    我是 Node js 的新手 目前正在质疑它的可靠性 根据我到目前为止所看到的 似乎存在一个重大缺陷 任何未捕获的错误 异常都会导致服务器崩溃 当然 您可以尝试对代码进行防弹保护或将 try catch 放在关键区域 但几乎总会有错误被漏掉
  • 在django中上传图像时如何更改图像格式?

    当用户从 Django 管理面板上传图像时 我想将图像格式更改为 webp 我已经重写了模型的保存方法 Webp 文件在 media banner 文件夹中生成 但生成的文件未保存在数据库中 我怎样才能做到这一点 def save self
  • 无法将应用程序上传到 Chrome 网上应用店 - “此项目不是应用程序,请从清单中删除应用程序部分。”

    上传我的应用程序时 我不断收到此错误 发生错误 无法处理您的项目 该项目不是应用程序 请从清单中删除应用程序部分 这是我的 Chrome 应用程序的清单文件 基于开始使用 你好世界 https developer chrome com ap
  • Angular2 与 video.js 错误没有兼容的源

    视频 错误 代码 4 MEDIA ERR SRC NOT SUPPORTED 找不到该视频的兼容源 我正在尝试在 Angular 2 项目中播放视频 这是我的代码 import Component ElementRef OnInit OnD
  • 如何使用 Python 中的 Perl 模块?

    有一个 Perl 模块可以为我的 Python 应用程序提供完美的功能 我有什么办法可以利用它吗 这是复杂的 我需要一个月的时间来移植它 我不想为每次使用都生成一个子进程 因为我需要它数十万次 它是一种特定类型的数据解析器 谢谢你的建议 编
  • 如何使用flavorDimensions为每种口味组合设置不同的applicationId?

    我有一个旧的 Android 应用程序 我正在尝试将其迁移到 Android gradle 构建系统 该应用程序目前构建在多项目设置中 并作为四个不同的应用程序发布 包括两个不同的数据集以及两个数据集的免费 付费版本 我已经通过使用flav
  • 游标用前一行和当前行的值更新行

    各位查询作者 我有一个表如下 myTable t1 col2 col3 2 1 3 0 4 0 5 0 6 0 我想用前一行中 col3 的值加上当前行中 col2 的值来更新 col3 上的每个零 所以我的桌子会像下面这样 myTable