我有以下格式的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中的解决方案。
答案 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列名