我有一个包含个人信息(包括地址)的原始文件csv:每个地址有两列,以及两个不同的地址(总共四个字段)。
因此,我的CSV中可能包含Fred, Flinstone, ID#12345678, 123 Street, Apt 6, Seattle, WA, 87319, 567 5th Ave, Seattle, WA, 87321
以及我需要的其他几列。
我的问题是,有没有一种方法可以导入或设置将获取此数据并将其分为两行的CREATE TABLE
语句:
0: Fred, Flinstone ID#12345678, 123 Street, APT 6, Seattle, WA, 87319
1: Fred, Flinstone ID#12345678, 567 5th Ave, Seattle, WA, 87312
我知道有Array_arg
用于将数组拆分为不同的行,但是我不知道如何从中填充新表。基本上,我现在的问题是,我们只用列出的主要/第一个地址来设置此数据库,而现在在尝试加入该表时会引起严重的问题。我不想设置了两个表,可以在其中加入以获得两个地址。我只想知道是否可以对导入执行此操作,因为我的搜索没有找到我想要的东西。
有两种方法可以解决此问题:
您可以定义一个外部表,它可以像使用外部数据包装器的sql表一样访问csv表。然后,您可以使用insert as select将记录插入目标表中。您需要选择两次运行插入操作:首先输入主地址,然后输入次地址。
代替使用外部数据包装器方法,您首先可以使用copy命令将表加载到暂存表中。然后,使用登台表将insert作为select运行到目标表中。