2016-11-19 2 views
-1

J'ai une donnée de 8 lignes avec une seule colonne de la table commeComment obtenir lignes données tête de colonne dans SQL Server 2005

PeriodName 
----------- 
1st-Period 
2nd Period 
3rd Period 
4th Period 
5th Period 
6th Period 
7th Period 
8th Period 

Je veux montrer que les 8 lignes de données sous forme de colonnes dans la table temp , quelqu'un pourrait m'aider s'il vous plaît?

+0

Copie possible de [Convert Rows to co Lumns utilisant 'Pivot' dans SQL Server] (http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot-in-sql-server) – scsimon

Répondre

0

Vous pouvez utiliser SQL dynamique et l'exécuter avec la commande sp_executesql

D'abord, je concatenate column values dans SQL Ensuite, appelez sp_executesql sp

Voici un échantillon

Declare @sql nvarchar(max) 
SELECT @sql = 
'Select ' + 
    STUFF(
    (
    SELECT 
     ',' + QUOTENAME(PeriodName) 
    FROM dbo.Periods 
    FOR XML PATH(''),TYPE 
    ).value('.','VARCHAR(MAX)' 
    ), 1, 1, '' 
) + ' From myTable' 

exec sp_executesql @sql 

SQL QUOTENAME function est utilisé pour rester en sécurité avec les noms de colonnes, y compris les espaces et autres caractères spéciaux