【问题标题】:Sql convert data into one row from multiple columnssql将数据从多列转换为一行
【发布时间】:2014-02-26 16:57:24
【问题描述】:

我有一张桌子

我想为每个客户编号将其转换为一行,如下所示:

谁能给我指出正确的地方,我可以做类似事情的例子。

【问题讨论】:

  • 您正在寻找的关键术语是“枢轴”。我现在时间很紧,但如果没有人比我做得更好,我可以在今天晚些时候提供解决方案。

标签: sql sql-server sql-server-2008 sql-server-2005


【解决方案1】:

您需要使用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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多