Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server数据透视表中显示连接的字段_Sql Server_Concatenation_Pivot Table - Fatal编程技术网

Sql server 在SQL Server数据透视表中显示连接的字段

Sql server 在SQL Server数据透视表中显示连接的字段,sql-server,concatenation,pivot-table,Sql Server,Concatenation,Pivot Table,我有一个结构如下的表格: 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],[

我有一个结构如下的表格:

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
有没有一种简单的方法可以做到这一点,而不必为单位创建单独的数据透视表并将两者连接在一起


另外,有些行没有单位,因此如果单位为空,我不想显示它

如果我正确理解您的意思,我认为在源代码中进行串联可能会得到您想要的结果:

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