Pivot-Tabelle mit benutzerdefinierten Namen als Spaltennamen

Wie kann ich einen Tisch mit einer einzigen Spalte schwenken.

Ergebnismenge meiner Auswahlabfrage enthält einzelne Spalte und 3 Zeilen. dh meine ausgesuchte Abfrage sieht aus wie: –

contactList table have following columns. ContactID, PhNumbers, PhTYpe, ContactPersonID select PhNumbers,PhType from contactList where ContactPersonID=3 PhNumbers PhType 1234567890 1 3456789013 2 4545466756 3 

Diese 3 Zeilen entsprechen 3 Arten von Telefonnummern

Ich brauche eine Ausgabe wie diese

 homePhone MobilePhone WorkPhone 1234567890 3456789013 4545466756 

  DECLARE @SQL varchar(MAX), @ColumnList varchar(MAX) SELECT @ColumnList= COALESCE(@ColumnList + ',','') + QUOTENAME(PhNumbers) FROM ( SELECT DISTINCT PhNumbers FROM contactList ) T SET @SQL = ' WITH PivotData AS ( SELECT PhNumbers FROM contactList ) SELECT ' + @ColumnList + ' FROM PivotData PIVOT ( MAX(PhNumbers) FOR PhNumbers IN (' + @ColumnList + ') ) AS PivotResult' EXEC (@SQL) 

Habe die Antwort. Vielen Dank für all deine Hilfe Jungs.

 SELECT [1] as HomePhone, [2] as MobilePhone,[3] as WorkPhone, FROM (select PhNumbers,PhType from contactList where ContactPersonID=3) AS SourceTable PIVOT ( MAX(PhNumbers) FOR PhType IN ([1],[2],[3]) ) AS PivotTable; 

Versuchen Sie diese Abfrage

SELECT 1,2,3 FROM (SELECT PhNumbers, PhType FROM Kontaktliste, wo ContactPersonID = 3) ein PIVOT (MAX (PhNumbers) FÜR PhType IN (1, 2, 3)) r