SQL 剪切并粘贴到列

标签 sql set batch-processing paste

我知道如何将数据从一列复制到另一列:

UPDATE table SET columnB = columnA

这很酷,但我想批处理此命令(我知道如何执行此操作),因为我需要更新几(1.6 亿)百万条记录。问题是,如果我选择 TOP(1000) (每批),则无法知道我处理了前 1000 个(其中删除后,TOP(1000) 将不断变化,因为您删除了它们,所以有一个新的每次都顶上)。我无法使用简单的 WHERE 子句来处理此问题,因为列 B 中的值范围从真值到“NULL”到“0”,列 A 也是如此。

所以基本上,我想浏览每条记录,检查columnA,有点像:

WHERE columnA <> NULL

然后用该columnA数据设置columnB,然后以某种方式将columnA设置为NULL,因此下一批将跳过该记录(因为columnA <> NULL为假)。

总结问题:使用列 A 中的数据更新列 B 后如何将列 A 设置为 NULL?

最佳答案

您可以使用:

UPDATE   TableName
SET      Col2 = Col1,
         Col1 = NULL
WHERE    Col1 IS NOT NULL

关于SQL 剪切并粘贴到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30868642/

相关文章:

python - 在 osx 上将 .py(文本文件)批量转换为 .pdf

C# 批量复制到 SQL 表类型问题

sql - 什么是 Visio Enterprise Architect 的良好替代品?

SQL - 从另一个表的字段填充一个表

java - 如何使用 Struts2 ModelDriven 将数据放入对象内的列表中

c++ - vector 与集合的搜索性能

c# - 错误 "Cannot perform Like Operation on ' System.Int3 2' and ' System.String'”设置DataGridView数据源

variables - 对 Netlogo 中的品种使用 "n-of"命令时出错

asp.net-mvc - 设计长期运行的 ASP.net MVC Web 请求

batch-file - 批处理文件 : FOR/F doesn't work as expected