【问题标题】:PIVOT not performing as expectedPIVOT 未按预期执行
【发布时间】:2011-02-25 01:49:24
【问题描述】:

抱歉之前有一个不清楚的问题;希望我能重新开始……

我有这些数据:

entityid    name                 stringvalue
----------- -------------------- --------------------
1           ShortDescription     Coal
1           LongDescription      BlackCoal
1           ShortDescription     Gold
1           LongDescription      WhiteGold
1           ShortDescription     Steel
1           LongDescription      StainlessSteel

这个查询:

select *
from
(
    select entityid, name, stringvalue as stringvalue
    from mytable
) as d
pivot
(
    min([stringvalue])
    for [name] in ([ShortDescription],[LongDescription])
)
as p

产生这个输出:

entityid ShortDescription LongDescription
-------- ---------------- ---------------
1        Coal             BlackCoal

有人能告诉我为什么没有生成其他行吗?我期待看到:

entityid ShortDescription LongDescription
-------- ---------------- ---------------
1        Coal             BlackCoal
1        Gold             WhiteGold
1        Steel            StainlessSteel

【问题讨论】:

    标签: sql tsql pivot


    【解决方案1】:

    答案竟然是这样的:

    select *
    from
    (
        select entityid, [name], stringvalue as stringvalue
        from mytable
    ) as d
    pivot
    (
        min(stringvalue)
        for [name] in ([ShortDescription],[LongDescription])
    )
    as p
    

    :)

    缺陷在于输入表的 entityid 行应该分别为 1、1、2、2、3、3。

    M

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-20
      • 2017-12-15
      • 2012-11-23
      • 2014-10-20
      • 2015-09-17
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多