【发布时间】:2021-08-25 14:09:22
【问题描述】:
所以我正在处理来自 csv 文件的数据,这些数据有点混乱。很多重复的行,最后两个值构成该列中的单独标题和数据,如下所示:
| ID | Name | Date | field4 | field5 |
|---|---|---|---|---|
| 1 | John | 21-03-23 | Flavour | Strawberry |
| 1 | John | 21-03-23 | Location | Kitchen |
| 2 | Jane | 21-04-18 | Flavour | Lime |
| 2 | Jane | 21-04-18 | Location | Basement |
到目前为止,我只使用 INSTER INTO 语句清理了 Access 中的数据,因为所有具有相同主键的重复行都将被忽略。像这样的查询:
INSERT INTO b (ID, Name, Date, field4, field5)
SELECT a.ID, a.Name, a.Date, a.field4, a.field5
FROM a;
,它返回如下内容:
| ID | Name | Date | field4 | field5 |
|---|---|---|---|---|
| 1 | John | 21-03-23 | Flavour | Strawberry |
| 2 | Jane | 21-04-18 | Flavour | Lime |
但是,现在我需要将 field4 和 field5 中的所有不同值转换为新列,这样数据就不会丢失。像这样:
| ID | Name | Date | Flavour | Location |
|---|---|---|---|---|
| 1 | John | 21-03-23 | Strawberry | Kitchen |
| 2 | Jane | 21-04-18 | Lime | Basement |
这如何在 SQL 中完成?
【问题讨论】:
标签: sql csv ms-access data-cleaning