我正在对包含以下内容的表进行动态数据透视查询:
- OID - 订单 ID
- 尺寸 - 产品尺寸
- BucketNum - 尺寸的顺序
- 数量 - 订购的数量
大小列包含不同的大小,具体取决于 OID。
所以,使用在这里找到的代码,我把它放在一起:
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 )
这很好用,除了列标题(大小标签)不是基于 bucketnum 列的顺序。这些是基于大小的顺序。
我在枢轴之后尝试了可选的 Order By,但这不起作用。
如何控制列出现的顺序?
谢谢