【问题标题】:Displaying concatenated fields in a SQL Server pivot table在 SQL Server 数据透视表中显示串联字段
【发布时间】:2015-03-25 15:40:06
【问题描述】:

我有一个如下结构的表:

Title text
LineNo integer
Key   text
Value text
Units text

我创建了一个数据透视表来将行数据转换为列名:

SELECT * FROM
(SELECT Title, [Key],[Value] FROM Table1 WHERE [Key] LIKE 'Field_%' AND [LineNo]>0) as Data 
PIVOT(
MAX([Value])
FOR [Key] IN([Field_1],[Field_2],[Field_3])) As Piv

现在我想在每个值旁边显示单位。我尝试将它们连接起来,但这不起作用。

SELECT * FROM         
(SELECT     Title, [Key], [Value], [Units] FROM Table1                       
WHERE [Key] LIKE 'Field_%' AND [LineNo] > 0) AS Data 
PIVOT (MAX([Value]) + ' ' + [Units]) FOR [Key] IN ([Field_1],[Field_2],[Field_3])) AS Piv

有没有一种简单的方法可以做到这一点,而无需为 Units 创建单独的数据透视表并将两者连接在一起?

还有一些行没有单位,所以如果单位是空白我不想显示它

【问题讨论】:

    标签: sql-server concatenation pivot-table


    【解决方案1】:

    如果我理解你的话,我认为在源代码中进行连接可能会给你想要的结果:

    SELECT * FROM (
        SELECT Title, [Key], CONCAT([Value], ' ', Units) AS Value 
        FROM Table1 WHERE [Key] LIKE 'Field_%' AND [LineNo] > 0
        ) AS Data 
    PIVOT(
    MAX([Value])
    FOR [Key] IN([Field_1],[Field_2],[Field_3])) AS Piv
    

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多