SQL 17中的数据清理

问题描述 投票:0回答:1

我是一个SQL新手,目前正在为清理一个大型数据库而烦恼。

在下面的链接中,你可以看到我正在处理的数据。这基本上是所有在奥地利上市的保险公司2018年的财务账目。

我现在想做的是删除列F1和F2,以及删除每个表中的行1-4,重命名列名并取消数据透视。(这是我对清理的理解:)...)由于数据库包含了很多表,我想知道,你知道有什么命令可以帮助我一次性删除所有表中的列F1和F2吗?我不想手动更改每个表,因为我有日期,直到2014年。

Data I am working with

sql data-cleaning
1个回答
1
投票

我会给你一些提示,但在不知道具体细节的情况下,很难给出一个完整的解决方案。

为了得到表和列名,你可以使用一个查询。

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like N'2018%'

或者你可以改变 TABLE_NAME like 根据需要。

如果你想看到查询并执行它,你可以扩展上面的内容,给你的是 Alter Table 如下所示。

SELECT distinct 'Alter table ' + Table_Schema + '.' + Table_Name + ' drop column F1'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME like N'2018%'

这将根据需要生成脚本。Select 绳子 和where子句,如果有必要的话,可以使用regex来一次性地捕获所有的表。

正如@HoneyBadger所指出的那样,你应该知道什么是前4行,因为,你在管理工作室中看到的前4行可能并不是数据库本身里面的那些。你可以做的是查询你认为是那些,并想办法具体识别出来,然后写成上述动态语句的删除语句,并执行。

总之,要准备好备份,以防万一。


0
投票

非常感谢大家的快速回复。我将不得不详细说明这些,因为我是一个完全的初学者,并没有真正理解你的意见。现在 :) ...但我正在努力。

关于前4行,我基本上想删除每一个空(空)单元格。我必须承认,通过删除前4行,我也会删除一个页眉,但我可以接受这个 "错误",以简化这个过程。

© www.soinside.com 2019 - 2024. All rights reserved.