【发布时间】:2014-02-26 16:57:24
【问题描述】:
我有一张桌子
我想为每个客户编号将其转换为一行,如下所示:
谁能给我指出正确的地方,我可以做类似事情的例子。
【问题讨论】:
-
您正在寻找的关键术语是“枢轴”。我现在时间很紧,但如果没有人比我做得更好,我可以在今天晚些时候提供解决方案。
标签: sql sql-server sql-server-2008 sql-server-2005
我有一张桌子
我想为每个客户编号将其转换为一行,如下所示:
谁能给我指出正确的地方,我可以做类似事情的例子。
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2005
您需要使用PIVOT。类似以下查询的内容应该会有所帮助。
SELECT CustomerNumber,
CASE WHEN [1] > 0 THEN 'Y' ELSE 'N' END [Sony],
CASE WHEN [2] > 0 THEN 'Y' ELSE 'N' END [LG],
CASE WHEN [3] > 0 THEN 'Y' ELSE 'N' END [Samsung]
FROM
(SELECT Product1, CustomerNumber
FROM Table) AS SourceTable
PIVOT
(
COUNT(Product1)
FOR Product1 IN ([1], [2], [3])
) AS PivotTable;
【讨论】: