我已经查看了有关可用语句的文档,但没有看到任何语句可以使我将删除的行移动到另一个表中
下面是一段sql代码:
CREATE TABLE %s;
INSERT INTO rm.table_access (%s) VALUES (%s);
DELETE FROM rm.table_access
Where (%s) LIKE 'HEARTBEAT' AND -7 AND -077 AND -77
OUTPUT Deleted.(%s) INTO test_tables;
有什么办法吗?有可能吗
Tags:
在您的情况下,我建议您为每个表创建一个新表,并使用适当的过滤器。您可以使用创建表dataset.newtable作为从T中选择x,您可以阅读更多关于它的信息。因此,您的语法是:
我在WHERE语句中使用了单引号,因为我假设要筛选的字段是字符串。另一个选项是使用函数REGEXP_CONTAINS(),您可以找到关于它的更多信息here。过滤器的语法将简化,如下所示:
请注意,使用上述方法比较的值必须是字符串。因此,在使用它之前,您必须确保这个转换,您可以使用CAST()函数
此外,如果要删除源表中的行,可以使用DELETE。语法如下:
请注意,您将直接从源表中删除行
我希望有帮助
更新
创建一个包含所需行的新表和另一个包含“已删除”行的表
现在,您将获得第一步中未通过过滤器的行。它们将用所需行组成表,如下所示:
现在您有了包含原始数据的源表、包含所需行的另一个表和包含忽略行的表
第二选项:
如果您不需要原始数据,这意味着您可以修改源表。您可以先创建一个包含被忽略行的表,然后从源数据中删除这些行
相关问题 更多 >
编程相关推荐