Подобно GMB, вы можете использовать динамический sql, как показано ниже, чтобы сделать тот же самый поворот, чтобы получить все столбцы
declare @cols varchar(max)
declare @query nvarchar(max)
select @cols = stuff((select ','+QuoteName(Program) from facultytable group by Program for xml path('')),1,1,'')
SET @query = 'select faculty, ' + @cols + ' from ( ' + ' select faculty, Program, Number_of_enrolled from facultytable ) a '
SET @Query = @query + ' pivot (max([Number_of_enrolled]) for Program in (' + @cols + ')) p '
--select @query --Execute below by uncommenting after checking the query
exec sp_executesql @query
Вывод, как показано ниже:
+---------+-------------------+---------+---------------------+------------+
| faculty | Actuarial Science | Biology | Financial Modelling | Statistics |
+---------+-------------------+---------+---------------------+------------+
| Science | 30 | 16 | 25 | 28 |
+---------+-------------------+---------+---------------------+------------+
Код здесь: https://rextester.com/LFSP20314