Неверный формат CSV при экспорте результата SQL-запроса - PullRequest
0 голосов
/ 25 сентября 2018

Формат CSV ScreenShot В таблице 1 есть три столбца: COMPANY, AMOUNT и Vendor.А после запроса мы получим таблицу с 6 столбцами: VENDOR, A, B, C, D, Total.

SELECT 'VENDOR','A','B','C','D','Total'
UNION ALL
SELECT 
    VENDOR,
    SUM(CASE
        WHEN COMPANY = 'A' THEN AMOUNT
        ELSE ''
    END) AS A,
    SUM(CASE
        WHEN COMPANY = 'B' THEN AMOUNT
        ELSE ''
    END) AS B,
    SUM(CASE
        WHEN COMPANY = 'C' THEN AMOUNT
        ELSE ''
    END) AS C,
    SUM(CASE
        WHEN COMPANY = 'D' THEN AMOUNT
        ELSE ''
    END) AS D,
    SUM(AMOUNT) AS Grand_Total
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/result.csv'
FROM
    table1
GROUP BY VENDOR_NAME;

Проблема заключается в следующем: когда я пытался экспортировать результат запроса в новыйРезультат CSV-файла, я обнаружил, что содержимое в CSV-файле действительно грязно ... И в моем result.csv: первая строка VENDORABCDTotal, а вторая строка Mike12340001234.Все поля и данные находятся в первом столбце CSV-файла.

1 Ответ

0 голосов
/ 25 сентября 2018

Необходимо завершить каждое поле запятой, а каждую строку - символом новой строки: экспортируйте данные, используя следующую команду:

SELECT 'VENDOR','A','B','C','D','Total'
UNION ALL
SELECT 
    VENDOR,
    SUM(CASE
        WHEN COMPANY = 'A' THEN AMOUNT
        ELSE ''
    END) AS A,
    SUM(CASE
        WHEN COMPANY = 'B' THEN AMOUNT
        ELSE ''
    END) AS B,
    SUM(CASE
        WHEN COMPANY = 'C' THEN AMOUNT
        ELSE ''
    END) AS C,
    SUM(CASE
        WHEN COMPANY = 'D' THEN AMOUNT
        ELSE ''
    END) AS D,
    SUM(AMOUNT) AS Grand_Total
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/result.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
FROM
    table1
GROUP BY VENDOR_NAME;

Проверьте это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...