Конвертировать CSV, хранящийся в строковой переменной, в таблицу - PullRequest
1 голос
/ 19 марта 2019

У меня есть данные CSV, хранящиеся в строковой переменной в SQL:

@csvContent = 
'date;id;name;position;street;city
 19.03.2019  10:06:00;1;Max;President;Langestr. 35;Berlin
 19.04.2019  12:36:00;2;Bernd;Vice President;Haupstr. 40;Münster
 21.06.2019  14:30:00;3;Franziska;financial;Hofstr. 19;Frankfurt'

Я хочу преобразовать их в таблицу #, чтобы она выглядела как

SELECT * FROM #table

 date                 id  name   position       street        city
 ---------------------------------------------------------------------
 19.03.2019  10:06:00 1   Max    President      Langestr. 35  Berlin
 19.04.2019  12:36:00 2   Bernd  Vice President Haupstr. 40   Münster
 21.06.2019  14:30:00 3   Franzi financial      Hofstr. 19    Frankfurt

Заголовки не зафиксированы, поэтому в CSV может быть больше или меньше столбцов с разными именами заголовков.

Я пробовал это с split_string() и pivot, но не нашел решениядля этого.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Надеюсь, это поможет вам

    CREATE TABLE #temp(
        date date,
        id int ,
        name varchar(100), 
       . ....... //create column that you needed
    )
DECLARE @sql NVARCHAR(4000) = 'BULK INSERT #temp
        FROM ''' + @CSVFILE+ ''' WITH 
        ( 
            FIELDTERMINATOR ='';'',
            ROWTERMINATOR =''\n'', 
            FIRSTROW = 2
         )';

        EXEC(@sql);

        SELECT *FROM #temp
        DROP TABLE #temp
0 голосов
/ 19 марта 2019

Если вы используете сервер SQL, это может быть решением для вашего запроса:

Как разделить запятую на столбцы

...