SQL剪切并粘贴到列
我知道如何将数据从一列复制到另一列:SQL剪切并粘贴到列,sql,set,batch-processing,paste,Sql,Set,Batch Processing,Paste,我知道如何将数据从一列复制到另一列: UPDATE table SET columnB = columnA 这很酷,但我想批处理这个命令(我知道怎么做),因为我需要更新几(1.6)亿条记录。问题是,如果我选择顶部(1000)(每批),就无法知道我处理了前1000个(使用delete,顶部(1000)将不断变化,因为您删除了它们,所以每次都有一个新的顶部)。我不能用一个简单的WHERE子句来处理这个问题,因为columnB中的值的范围是从true值到'NULL'到'0',而a列也是如此 所以基本
UPDATE table SET columnB = columnA
这很酷,但我想批处理这个命令(我知道怎么做),因为我需要更新几(1.6)亿条记录。问题是,如果我选择顶部(1000)(每批),就无法知道我处理了前1000个(使用delete,顶部(1000)将不断变化,因为您删除了它们,所以每次都有一个新的顶部)。我不能用一个简单的WHERE子句来处理这个问题,因为columnB中的值的范围是从true值到'NULL'到'0',而a列也是如此
所以基本上,我想浏览每一条记录,检查一下A列,有点像:
WHERE columnA <> NULL
其中column为空
然后使用此columnA数据设置columnB,然后以某种方式将columnA设置为NULL,这样下一批将跳过此记录(因为columnA NULL为false)
摘要问题:如何在使用columnA中的数据更新columnB后将columnA设置为NULL?您可以使用:
UPDATE TableName
SET Col2 = Col1,
Col1 = NULL
WHERE Col1 IS NOT NULL
记录上是否有任何类型的标识符可用于分批处理?或者至少是一个你可以按(名字等)排序的分散列?真的那么简单吗?谢谢!