Pivote dinámico de SQL - cómo ordenar columnas

Estoy trabajando en una consulta dinámica en una tabla que contiene:

OID - OrderIDTamaño - tamaño del productoBucketNum - el orden en que deben ir los tamañoscantidad - cuántos ordenó

La columna de tamaño contiene diferentes tamaños dependiendo del OID.

Entonces, usando el código encontradoaquí, Puse esto juntos

DECLARE @listCol VARCHAR(2000)
DECLARE @query VARCHAR(4000)

SELECT  @listCol = STUFF(( SELECT distinct  '], [' + [size]
                           FROM     #t
                         FOR
                           XML PATH('')
                         ), 1, 2, '') + ']'


SET @query = 'SELECT * FROM
      (SELECT OID,  [size], [quantity]
            FROM #t 
            ) src
PIVOT (SUM(quantity) FOR Size
IN (' + @listCol + ')) AS pvt'


EXECUTE ( @query )

Esto funciona muy bien, excepto que los encabezados de columna (las etiquetas de tamaño) no están en el orden basado en la columna de bucketnum. Están en el orden basado en los tamaños.

He intentado el pedido opcional después del pivote, pero eso no está funcionando.

¿Cómo controlo el orden en que aparecen las columnas?

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta