首页 > 解决方案 > 一行中的每个值都被视为新列 - 转换为可加载的数据文件

问题描述

我有一个数据文件,其中每一行值都显示为一个新的列条目。我想转换它或找到一个逻辑来使这个文件可加载到数据库中。以下是文件中数据的示例。

文件很大。它有超过 7000 列。我已尝试将其加载/导入到表中,但它超过了所有工具中的最大列限制

+--------+-----------+----------+----------+----------+------------+------------+------------+------------+
| emplid | status_0  | status_1 | status_2 | status_3 | location_0 | location_1 | location_2 | location_3 |
+--------+-----------+----------+----------+----------+------------+------------+------------+------------+
| 1234   | Submitted | Reviewed | Approved | Accepted |            | California | Michigan   |            |
+--------+-----------+----------+----------+----------+------------+------------+------------+------------+
| 4568   | Submitted | Reviewed | Denied   |          | Texas      | Utah       | Illinois   | NewYork    |
+--------+-----------+----------+----------+----------+------------+------------+------------+------------+

+--------+-----------+------------+
| emplid | status    | location   |
+--------+-----------+------------+
| 1234   | Submitted |            |
+--------+-----------+------------+
| 1234   | Reviewed  | California |
+--------+-----------+------------+
| 1234   | Approved  | Michigan   |
+--------+-----------+------------+
| 1234   | Accepted  |            |
+--------+-----------+------------+
| 4568   | Submitted | Texas      |
+--------+-----------+------------+
| 4568   | Reviewed  | Utah       |
+--------+-----------+------------+
| 4568   | Denied    | Illinois   |
+--------+-----------+------------+
| 4568   |           | Newyork    |
+--------+-----------+------------+

标签: sqldata-files

解决方案


您可以将数据文件加载到什么工具中?如果您可以将其加载到任何符合 SQL 的数据库中,则可以使用 SQL 查询,例如:

INSERT INTO master_status_table
(SELECT emplid, status_0, location_0) as x)
GO

INSERT INTO master_status_table
(SELECT emplid, status_1, location_1) as y)
GO

INSERT INTO master_status_table
(SELECT emplid, status_2, location_2) as z)
GO

但是,听起来您一开始就无法将其放入数据库。因此,您可以尝试将其加载到 EXCEL 电子表格中。然后,在电子表格中,假设您的原始数据在一个名为“原始数据”的工作表中,然后您将创建另一个名为“状态 0”的工作表,在该工作表中,您将有一个公式来显示内容来自“原始数据”(员工 ID)的“A”列以及“B”列和“F”列的状态和位置的同一行数据。然后工作表“状态 1”将具有相同但列“C”和“G”用于状态和位置等。一旦您拥有所有“状态”工作表,您可以将每个工作表导出为 .CSV 文件并导入直接进入你的master_status_table。

我知道这仍然是一个非常手动的过程,但应该是可能的。


推荐阅读