在SQL Server 2012中,可以使用ORDER BY子句按照PIVOT排序。以下是一个包含代码示例的解决方法:
假设我们有一个名为"Sales"的表,包含以下列:Year、Month和Amount。我们想要按照Year和Month对Amount进行PIVOT操作,并按照Year和Month排序。
首先,我们需要使用PIVOT关键字将行转换为列。然后,我们可以在PIVOT查询的外部使用ORDER BY子句按照Year和Month排序。
下面是一个示例查询:
SELECT Year, [1] AS January, [2] AS February, [3] AS March, [4] AS April, [5] AS May, [6] AS June, [7] AS July, [8] AS August, [9] AS September, [10] AS October, [11] AS November, [12] AS December
FROM (
SELECT Year, Month, Amount
FROM Sales
) AS SourceTable
PIVOT (
SUM(Amount)
FOR Month IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS PivotTable
ORDER BY Year, Month
在上面的示例中,我们首先从"Sales"表中选择Year、Month和Amount列,并使用PIVOT关键字将行转换为列。然后,我们在外部的SELECT语句中使用ORDER BY子句按照Year和Month排序结果。
请注意,Month列在PIVOT子句中使用了[1]、[2]、[3]等作为列名。这是因为PIVOT操作需要指定转换后的列名,它们必须是有效的标识符。在这个例子中,我们使用了数字作为列名,分别对应1月、2月、3月等。
希望以上解决方法对您有所帮助!