【发布时间】:2012-02-20 03:50:45
【问题描述】:
我在尝试在桌子上执行枢轴时遇到问题。我想要的示例如下所示。
ProductBarcode ProductID
-------------- ---------
1000 P1
1001 P1
1002 P2
1003 P3
1004 P4
1005 P4
现在我想把上面的表格变成下面的样子。
ProductID Barcode1 Barcode2
--------- -------- --------
P1 1000 1001
P2 1002
P3 1003
P4 1004 1005
我试图通过以下查询来解决它,但它没有给出所需的结果:
SELECT
[r1].[productID],
[r1].[Productbarcode] as Barcode1,
[r2].[ProductBarcode] as Barcode2
FROM products as r1 right JOIN products as r2 on r1.[productID] = r2.[productID]
现在这只是一个示例,在实际案例中,有数百种产品具有多个条形码。
我什至尝试过使用以下查询,但我得到的只是条形码列中的空值。
SELECT productID,[barcode1],[barcode2]
FROM
(SELECT barcode, productID
FROM products) as TableToBePivoted
PIVOT
(MAX(barcode)
FOR barcode IN ([barcode1], [barcode2])
) AS PivotedTable;
任何帮助将不胜感激。
【问题讨论】:
标签: sql sql-server sql-server-2008 pivot aggregation