在SQL中将平面CSV转换为数据库格式

时间:2019-05-09 11:17:26

标签: sql database csv hana

我有以下格式的csv文件,可以将其导入SAP HANA DB:

employee_id; salary delta 1.1.2016 - 30.6.2016; salary delta 1.7.2016 - 21.12.2016; personal_evaluation 1.1.2016 - 30.6.2016; personal_evaluation 1.7.2016 - 21.12.2016
ID1234;0.05;0.1;0;0.2  
ID32145;0;0.2;0;0 

请问,如何在sql中将其转换为如下所示的表?

employee_id, start_date, end_date, salary_delta; personal_evaluation_delta

我不知道该如何处理。我可以使用任何标准工具,但是我希望使用sql中的解决方案。

1 个答案:

答案 0 :(得分:0)

您的csv源文件格式很奇怪。我很确定这个csv是手动创建的。如果它是由某些应用程序自动创建的,则它将具有更多谐波格式。 首先,您应该创建一个可读取的csv文件,例如:

employee_id,start_date,end_date,salary_delta,personal_evaluation_delta
ID244,2010-05-30,2018-01-31,100.50,4.56
ID314,2012-06-11,,40.41,14.54
ID314,2008-02-02,2017-03-28,100.50,5.76
ID388,2016-04-18,2019-01-31,200.78,1.89
ID529,2007-06-23,,300.50,0.36

然后,如果csv文件位于可用于HANA数据库的文件共享上,并且在HANA配置中允许csv导入,则可以使用HANA sql导入它。但这是我认为的一种复杂方式。

另一种方法是使用Excel读取此csv,并在新列中创建一个公式,该公式将串联insert语句中的所有值。例如:

="INSERT into ""schema"".""Table"" ( … comma_separated_columns_List) values('" & A2 & "','" & TEXT(B2,"yyyy/MM/dd") & "', …. Etc …)"

假设这里A2,B2是Excel公式中通常使用的Excel列名