繁体   English   中英

SQL多行具有相同的行名称到列

[英]SQL multiple rows with same row names to column

我在SQL中有以下数据(nvarchar,nvarchar)

Name: Test Person 
Phone Number: 290831283
Fax Number: 192389182 
Email Address: test@test.com 
Name: Abacus Testing 
Phone Number: 901823908 
Fax Number: 9213989182 
Email Address: abacus@test.com

如何将数据格式化为:

[Name] [Phone Number] [Fax Number] [Email Address]
Test Person 290831283 192389182 test@test.com 
Abacus Testing 901823908 9213989182 abacus@test.com

所以基本上将行设置为匹配列

我希望使用数据透视表,但是由于聚合,我只得到第一行。

SELECT [Name], [Phone Number], [Fax Number], [Email Address]
FROM
(
    SELECT 
            ColumnName,
            Data
    FROM 
            TheData
) SRC
PIVOT
(
  MAX(Data)
  FOR ColumnName IN ([Name], [Phone Number], [Fax Number], [Email Address])
) PIV

我希望没有CURSOR方法,有其他选择吗?

  • 编辑:添加了其他可用的字段

其他可用字段是每个条目的标签ID。 即Name = 1,PhoneNumber = 2,FaxNumber = 3,EmailAddress = 4

4个条目中的每个条目的公共ID也都可用。 即前4个条目的ID为1001,后4个条目的ID为1002

在注释中澄清之后,您只需要在您的源代码中添加CommonId即可。

这不是聚合列或分散列,因此它将用作分组列,并且每个单独的值都会得到一行。

SELECT [Name], [Phone Number], [Fax Number], [Email Address]
FROM
(
    SELECT 
            CommonId,
            ColumnName,
            Data
    FROM 
            TheData
) SRC
PIVOT
(
  MAX(Data)
  FOR ColumnName IN ([Name], [Phone Number], [Fax Number], [Email Address])
) PIV

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM