Преобразование данных строки в столбец в SQL Server

Сегодня мой коллега попросил меня преобразовать данные из вертикальной промежуточной таблицы в горизонтальную таблицу. Я имею в виду преобразовать строки в столбец. Я использовал PIVOT и решил это. Но попал в ситуацию, когда у меня возникают проблемы с перемещением данных, если поле данных повторяется.

Вот тестовые данные, над которыми я работаю:

CREATE TABLE STAGING 
(
    ENTITYID INT,
    PROPERTYNAME VARCHAR(25),
    PROPERTYVALUE VARCHAR(25)
)

INSERT INTO STAGING VALUES (1, 'NAME', 'DONNA')
INSERT INTO STAGING VALUES (1, 'SPOUSE', 'HENRY')
INSERT INTO STAGING VALUES (1, 'CHILD', 'JACK')
INSERT INTO STAGING VALUES (2, 'CHILD', 'KAYALA')

Я использовал PIVOT, чтобы показать данные строки в виде столбцов:

SELECT * FROM 
(SELECT ENTITYID, PROPERTYNAME, PROPERTYVALUE FROM STAGING) AS T
PIVOT (MAX(PROPERTYVALUE) FOR PROPERTYNAME IN (NAME, SPOUSE, CHILD)) AS T2

Выход:

ENTITYID    NAME    SPOUSE  CHILD
1           DONNA   HENRY   JACK
2           NULL    NULL    KAYALA

Но он хотел получить что-то вроде:

ENTITYID    NAME    SPOUSE  CHILD   CHILD
1           DONNA   HENRY   JACK    KAYALA

Суть в том, что в промежуточную таблицу может входить более одного атрибута CHILD. И мы должны рассмотреть это и переместить всех детей в столбцы.

Это возможно?

Ответы на вопрос(2)

Ваш ответ на вопрос