Здесь приведена пересмотренная версия ответа @Tayrn, которая может помочь вам понять, что немного упростить:
Это может быть не лучший способ сделать это, но это помогло мне обернуть голову как сворачивать таблицы.
ID = строки, которые вы хотите свернуть
MY_KEY = столбец, который вы выбираете из исходной таблицы, которая содержит имена столбцов, которые вы хотите развернуть.
VAL = значение, которое вы хотите возвращать под каждым столбцом.
MAX (VAL) => Может быть заменен другими вспомогательными функциями. SUM (VAL), MIN (VAL), ETC ...
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(MY_KEY)
from yt
group by MY_KEY
order by MY_KEY ASC
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT ID,' + @cols + ' from
(
select ID, MY_KEY, VAL
from yt
) x
pivot
(
sum(VAL)
for MY_KEY in (' + @cols + ')
) p '
execute(@query);
Это должно работать, если вы работаете с Eclipse IDE. Попробуйте этот подход. Перейдите в «Свойства проекта» -> «Развертывание сборки» и убедитесь, что включен элемент зависимостей maven.
Я видел, что эта конфигурация пропущена всякий раз, когда вы выполняете Maven -> Update Project.