SQL SERVER FOR XML PATH - экспорт данных в Excel с использованием служб Integration Services - PullRequest
0 голосов
/ 27 июня 2018

С помощью справки и кода ниже:

select t1.*,
       stuff( (select '; ' + coalesce(data1, '') + ',' + coalesce(data2, '')
               from table2 t2
               where t2.FK_TBL1_ID = t1.id
               for xml path ('')
              ), 1, 2, ''
            ) as Data1Data2
from table1 t1;

Я успешно объединил несколько строк с несколькими столбцами в один столбец строки-одного в моем представлении sql.

Чего я в конечном итоге хотел бы добиться, так это чтобы у каждой строки с несколькими столбцами была возможность разбить строку для новой записи (строки) при просмотре в ячейке Excel, как показано ниже:

**Data1Data2Cell**

  aaaa, bbbb; 
  cccc, dddd;
    ....

Та же функциональность может быть достигнута в Excel, используя ALT + ENTER в каждой ячейке.

Я пытался использовать Char (10) и Char (13) безрезультатно.

1 Ответ

0 голосов
/ 27 июня 2018

Вы должны изменить свою первую строку STUFF на эту

 stuff( (select CHAR(10)+ coalesce(data1, '') + ',' + coalesce(data2, '')+'; '

Это приведет к правильному разрыву строки в строке.

См. рабочая демонстрация здесь

Обратите внимание, что при выполнении этого запроса в SSMS результаты могут отображаться некорректно, поскольку результаты обычно отображаются в виде таблицы, как показано ниже

normal view

Чтобы получить правильное представление, вы должны изменить результаты запроса на представление текста, нажав cntrl + t или нажав Параметры запроса в верхнем меню (см. Скриншот ниже)

results to text

Наконец, после этого ваш запрос даст вам правильное представление о результатах, как показано ниже

text results view

...