![](/img/trans.png)
[英]Combining multiple rows for each unique ID as a single row with multiple indexed column names in a view in SQL Server
[英]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.