仅执行插入和其他更新的一行操作?

用户名

我有一个验证过程,它将以这种格式返回数据,

DECLARE @MyDbTable TABLE (Id int, ACTION varchar(10))

它包括2个字段。为了简洁起见,省略了其他字段。MyDbTable包括操作“插入”,“更新”,“忽略”。假设我有以下数据,

INSERT INTO @MyDbTable (Id, ACTION)
VALUES (1, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (1, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (2, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (2, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (2, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (2, 'Insert')
INSERT INTO @MyDbTable (Id, ACTION)
VALUES (2, 'Ignore')

我只需要考虑“插入”操作。每个ID只能有1个带有“插入”操作的操作,其他应为“更新”。这是我正在寻找的最终结果,

Id  ACTION
1   Insert
1   Update
2   Insert
2   Update
2   Update
2   Update
2   Ignore

如何更新@MyDbTable以实现上述结果。

蒂姆·施密特(Tim Schmelter)

您可以通过CTE和使用这种方法ROW_NUMBER

WITH toUpdate AS
(
    SELECT Id, Action,
        rn = row_number() over (partition by t.id order by ID, Action)
    FROM MyDbTable t
    WHERE ACTION = 'Insert'
)
UPDATE d
SET ACTION = 'Update'
FROM toUpdate d
WHERE RN > 1;

Demo

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅执行插入和其他更新的一行操作?

来自分类Dev

来自其他表的Sqlite数据库插入数据仅插入一行

来自分类Dev

执行存储过程以在插入之前更新每一行

来自分类Dev

插入查询仅插入一行

来自分类Dev

说明-仅插入一行

来自分类Dev

如何从表格中删除表格的最后一行,而没有其他行插入数据?

来自分类Dev

我需要使用xlwt在其他行之间插入一行

来自分类Dev

循环仅适用于第一行。其他行不受 for

来自分类Dev

使用其他列中的仅一行减去该列

来自分类Dev

mysql-如果我更新一行,则所有其他行(包括更新的行)都返回更新的值

来自分类Dev

MySQL插入循环仅插入一行

来自分类Dev

一列的每个值仅返回一行,不同列中的其他值仅返回一行

来自分类Dev

在矩阵中插入一行和一行

来自分类Dev

为什么会这样,执行查询时仅更新/删除表的最后一行?

来自分类Dev

交替使用表格行的颜色和第一行的其他颜色

来自分类Dev

约束检查同一行和其他行是否不为空

来自分类Dev

如何基于同一行中的其他列更新列

来自分类Dev

仅一次将表中的每一行与其他行进行比较

来自分类Dev

如何根据R中的其他行执行条件操作?

来自分类Dev

侧栏获取整个宽度,不能在同一行上插入任何其他内容

来自分类Dev

仅当来自同一行的其他值是True时,才从熊猫数据框添加值

来自分类Dev

如何控制所有文件扩展名或不控制其他目录?仅一行

来自分类Dev

从其他行到一行的值列表

来自分类Dev

SQLite插入和更新其他列的值

来自分类Dev

python执行linux shell,仅返回一行

来自分类Dev

.bat文件:仅执行第一行-为什么?

来自分类Dev

PostgreSQL Upsert使用系统列XMIN,XMAX和其他来区分插入和更新的行

来自分类Dev

Scala,读取文件操作每一行,将每一行插入列表

来自分类Dev

Oracle-对结果集的每一行执行操作

Related 相关文章

  1. 1

    仅执行插入和其他更新的一行操作?

  2. 2

    来自其他表的Sqlite数据库插入数据仅插入一行

  3. 3

    执行存储过程以在插入之前更新每一行

  4. 4

    插入查询仅插入一行

  5. 5

    说明-仅插入一行

  6. 6

    如何从表格中删除表格的最后一行,而没有其他行插入数据?

  7. 7

    我需要使用xlwt在其他行之间插入一行

  8. 8

    循环仅适用于第一行。其他行不受 for

  9. 9

    使用其他列中的仅一行减去该列

  10. 10

    mysql-如果我更新一行,则所有其他行(包括更新的行)都返回更新的值

  11. 11

    MySQL插入循环仅插入一行

  12. 12

    一列的每个值仅返回一行,不同列中的其他值仅返回一行

  13. 13

    在矩阵中插入一行和一行

  14. 14

    为什么会这样,执行查询时仅更新/删除表的最后一行?

  15. 15

    交替使用表格行的颜色和第一行的其他颜色

  16. 16

    约束检查同一行和其他行是否不为空

  17. 17

    如何基于同一行中的其他列更新列

  18. 18

    仅一次将表中的每一行与其他行进行比较

  19. 19

    如何根据R中的其他行执行条件操作?

  20. 20

    侧栏获取整个宽度,不能在同一行上插入任何其他内容

  21. 21

    仅当来自同一行的其他值是True时,才从熊猫数据框添加值

  22. 22

    如何控制所有文件扩展名或不控制其他目录?仅一行

  23. 23

    从其他行到一行的值列表

  24. 24

    SQLite插入和更新其他列的值

  25. 25

    python执行linux shell,仅返回一行

  26. 26

    .bat文件:仅执行第一行-为什么?

  27. 27

    PostgreSQL Upsert使用系统列XMIN,XMAX和其他来区分插入和更新的行

  28. 28

    Scala,读取文件操作每一行,将每一行插入列表

  29. 29

    Oracle-对结果集的每一行执行操作

热门标签

归档