T-SQL Pivot Sort Order - PullRequest
       21

T-SQL Pivot Sort Order

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

У меня есть таблица, в которой контактная информация упорядочена по порядку сортировки и затем идет вниз в столбце.

Таблица контактов: enter image description here

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

enter image description here

Как я могу это сделать?

Ответы [ 2 ]

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

Ваш опорный запрос dyanmic должен быть похож на этот демо

declare @cols nvarchar(max);


declare @query nvarchar(max);


select 
    sourceId,
    patientId,
    data,
    cols= concat(col,sortOrder)
into #t
from
    Contacts
    UNPIVOT
    (
    data for col in 
        (
            personalContactType_MisContactTypeId,
            personalContactNameLast,
            personalContactNameFirst
        )
    )up


select @cols= stuff((
                   select distinct  ','+ quotename(cols)
                   from #t 
                   for xml path('')),1,1,'')
select @cols

select @query= 'select * from #t
pivot
( max(data) for cols in ('+@cols+
'))p'

exec (@query)
0 голосов
/ 06 июня 2018

В вашем динамическом стержне используйте SortOrder для ORDER BY при создании списка столбцов.

...