![](/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.