Преобразование плоских CSV в формат БД в SQL - PullRequest
0 голосов
/ 09 мая 2019

У меня есть 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 голосов
/ 16 мая 2019

У вас странный формат исходного 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

Затем вы можете импортировать его с помощью HANA sql, если csv-файл находится в общей папке, доступной для базы данных HANA, и в конфигурации HANA импорт csvпозволил.Но я думаю, что это сложный способ.

Другой способ - читать, читать этот CSV с Excel и создать формулу в новом столбце, которая объединит все значения в операторе вставки.Например:

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

Предполагая, что A2, B2 - это имена столбцов Excels, которые используются в формулах, как это обычно делает Excel,

...