declare @sql nvarchar(1024)
select @sql = 'SELECT' + char(13)
select @sql = @sql + 'max(case when RegionID = '
+ convert(varchar(10), RegionID)
+ ' then RegionDescription else null end) as ['
+ convert(varchar(10), RegionID)
+ '],'
+ char(13)
from Region
order by RegionID
select @sql = left(@sql, len(@sql) - 2)
select @sql = @sql + char(13) + 'FROM Region'
print @sql
exec (@sql)
The Output of print @sql is
SELECT
max(case when RegionID = 1 then RegionDescription else null end) as [1],
max(case when RegionID = 2 then RegionDescription else null end) as [2],
max(case when RegionID = 3 then RegionDescription else null end) as [3],
max(case when RegionID = 4 then RegionDescription else null end) as [4]
FROM Region
----------------------------------
'KH'