簡體   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