Colonne SQL et valeur à key et valeur

Je veux transformer l'logging d'une requête SQL qui ressemble à ceci …

FirstName Amount PostalCode LastName AccountNumber John 2.4 ZH1E4A Fork 857685 

à une paire de valeur key qui ressemble à ceci …

 Key Value FirstName John Amount 2.4 PostalCode ZH1E4A LastName Fork AccountNumber 857685 

Et je veux tout faire dans SQL. J'ai regardé l'exemple de pivot, mais je ne suis pas sûr que cela fonctionnera pour cela. Je sais que je pourrais utiliser des tables temporaires, union mais j'espère une solution plus élégante. Quelqu'un a une suggestion?

Merci, Paul

Essaye ça:

 DECLARE @t table(FirstName varchar(10), Amount money, PostalCode varchar(10), LastName varchar(10), AccountNumber int) INSERT @t values('John', 2.4, 'ZH1E4A', 'Fork', 857685) ;WITH CTE AS ( SELECT [FirstName], cast([Amount] as varchar(10)) [Amount], [PostalCode], [LastName], cast([AccountNumber] as varchar(10)) [AccountNumber] FROM @t ) SELECT [Key],Value FROM CTE UNPIVOT (Value FOR [Key] IN ([FirstName], [Amount], [PostalCode], [LastName], [AccountNumber]) ) AS unpvt 

Résultat:

 Key Value FirstName John Amount 2.40 PostalCode ZH1E4A LastName Fork AccountNumber 857685