Convertir datos de fila a columna en SQL Server

Hoy mi colega me pidió que transformara los datos de una tabla de preparación vertical en una tabla horizontal. Me refiero a transformar filas en columna. Utilicé PIVOT y lo resolví. Pero me metí en una situación en la que tengo problemas para mover datos si el campo de datos se repite.

Aquí están los datos de prueba en los que estoy trabajando:

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')

Usé PIVOT para mostrar los datos de las filas como columnas:

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

La salida es:

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

Pero él quería la salida algo así como:

ENTITYID    NAME    SPOUSE  CHILD   CHILD
1           DONNA   HENRY   JACK    KAYALA

La conclusión es que puede haber más de un atributo CHILD en la tabla de preparación. Y debemos considerar esto y mover a todos los NIÑOS a columnas.

es posible?

Respuestas a la pregunta(2)

Su respuesta a la pregunta