【问题标题】:Transposing the column in SQL server and removing unwanted columns?转置 SQL Server 中的列并删除不需要的列?
【发布时间】:2016-09-08 09:55:13
【问题描述】:

我有一张这样的桌子:

Dimension Code      Dimension Value Code    Entry No_
BUSINESSSEGMENTS       153                     1
TERMINAL               41150                   1

我想转置它,因为我正在使用这个查询:

select  *
from realTable
unpivot (value for DimValCode in ([Dimension Value Code])) up
pivot (max(value) for [Dimension Code] in (BUSINESSSEGMENTS,TERMINAL)) p

它工作正常并提供如下输出:

Entry No_     DimValCode                   BUSINESSSEGMENTS     TERMINAL
   1          Dimension Value Code              153              41150

但我需要这个:(不需要 DimValCode 列)

Entry No_       BUSINESSSEGMENTS    TERMINAL
  1                  153             41150

我需要在这个查询中修改什么?

谢谢。

【问题讨论】:

  • 指定列而不是*
  • 它给出错误 - 列名无效。我想在使用 pivot 和 unpivot 时必须使用 * 而不是列名。

标签: sql-server transpose


【解决方案1】:

这样试试,

SELECT [Entry No_]
    ,[BUSINESSSEGMENTS]
    ,[TERMINAL]
FROM (
    SELECT *
    FROM realTable
    unpivot(value FOR DimValCode IN ([Dimension Value Code])) up
    pivot(max(value) FOR [Dimension Code] IN (
                BUSINESSSEGMENTS
                ,TERMINAL
                )) p
    ) T

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2016-03-17
    • 1970-01-01
    相关资源
    最近更新 更多