我知道如何将数据从一列复制到另一列:
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/