【问题标题】:Do I need dynamic pivot? or is there another way?我需要动态支点吗?还是有其他方法?
【发布时间】:2015-01-02 06:07:11
【问题描述】:

所以我有一个看起来像这样的表:

Item_Id       Value      Type
 001           300       B2B
 001           450       (blank)

我正在尝试制作 B2B 和 P2P 列,因此我的结果如下所示:

Item_Id        B2B      (blank) 
 001           300       450

因此,它现在只占用 1 行,而不是占用 2 行。问题是这些值不是静态的,我需要考虑这一点。动态查询 + Pivot 有点超出我的范围,但并非不可能。我希望我可以使用案例陈述或其他方式来解决这个问题......非常感谢任何帮助!

我还想重命名空白.... 由于那个空白的空白,似乎也无法让枢轴为类型工作!

【问题讨论】:

  • 类型是静态的吗?如果是,那么您不需要动态支点来产生所需的结果。它只是 Type 的标准支点。
  • 同意Tab,如果你有静态类型,你不需要动态sql。否则我们可以写一个
  • 类型是静态的,但我的类型之一是空白 =/
  • 空白是什么意思?你的意思是'' 还是NULL?这些在 SQL Server 中是不同的。
  • 培根 - 空白,我认为空值会更容易处理

标签: tsql dynamic pivot case


【解决方案1】:

试试这个正常的静态枢轴应该可以工作。我想你不需要列名,所以插入空字符串。

INSERT INTO #temp
SELECT '001','300','B2B'
UNION
SELECT 001,450,'' 


SELECT *
FROM   (SELECT *
        FROM   #temp) AS p
       PIVOT (Max(value)
             FOR [type] IN([B2B],
                           [ ])) piv 

【讨论】:

  • 我使这比需要的要困难得多。我只是做了一个案例语句来为空白创建一个类型,然后静态枢轴一切都很好。我喜欢这个网站,因为有时我只是没有建立联系,需要这里大师的帮助。感谢大家帮助我!
猜你喜欢
  • 2011-06-13
  • 1970-01-01
  • 2023-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-03
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多