【问题标题】:SQL CUT and PASTE to COLUMNSQL 剪切并粘贴到列
【发布时间】:2015-06-16 13:14:24
【问题描述】:

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

UPDATE table SET columnB = columnA

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

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

WHERE columnA <> NULL

然后用这个columnA数据设置columnB,然后以某种方式将columnA设置为NULL,所以下一批将跳过这条记录(因为columnA NULL是false)。

总结问题:如何在使用 columnA 中的数据更新 columnB 后将 columnA 设置为 NULL?

【问题讨论】:

  • 记录上是否有任何类型的标识符可用于分批?或者至少是一个分散的列,您可以按(名称等)排序?

标签: sql set batch-processing paste


【解决方案1】:

你可以使用:

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

【讨论】:

  • 真的那么简单吗?非常感谢!
猜你喜欢
  • 2018-03-17
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多