

Вам нужно использовать Сводная таблица
У меня есть база данных в SQL 2000
Разве эта ссылка не относится к SQL Server 2000?
В моей схеме таблицы есть столбец varchar, а в примере, показанном в ссылке, есть столбцы int .. можно понять
Список обозначений фиксированный или произвольный?
Это должно работать и с 2000 - wg. без PIVOT
Еще одна процедура SQL Cross Tab http://johnmacintyre.ca/codespct.asp
Мне приходит в голову, что многие примеры относятся к запросам с перекрестными таблицами, включающим агрегирование, в котором, похоже, нет необходимости. Хотя я не обязательно одобряю Dynamic SQL, приведенное ниже должно дать вам желаемые результаты.
Create table #Contacts (id int)
Declare @ContactTypes int
Declare @CAD varchar(100)
Declare @I int
Declare @sql nvarchar(4000)
Set @i = 1
Select @ContactTypes =
Sum(sub.Types)
from ( Select Count(1) as Types from contacts
group by ContactName, Designation) as sub
Print @ContactTypes
While @i <= @ContactTypes
Begin
set @sql = 'alter table #Contacts Add ContactName' +
Cast(@I as varchar(10)) + ' varchar(100)'
exec sp_executesql @sql
Set @I = @i + 1
End
Insert into #Contacts (id) values (1)
Set @i = 1
Declare crsPivot cursor
for Select ContactName + ' ' + Designation
from contacts
open crsPivot
Fetch next from crsPivot into @CAD
While (@@Fetch_Status = 0)
Begin
Set @sql = 'Update #Contacts set ContactName'
+ Cast(@I as varchar(10)) +' = ' + quotename(@CAD,'''')
exec sp_executesql @sql
Set @i = @i + 1
Fetch next from crsPivot into @CAD
End
close crsPivot
Deallocate crsPivot
select * From #Contacts
Большое спасибо, правда .. спасибо
Я полагаю, это то же самое, что и stackoverflow.com/questions/312861/pivot-using-sql-server-20 00