Gday Все,Использование Dynamic Pivot SQL в представлении
Я написал код, динамически Опускайте таблицу как SQL Server : Transpose rows to columns
код выглядит как этот
DECLARE @cols NVARCHAR(MAX), @sql NVARCHAR(MAX)
SET @cols = STUFF((SELECT DISTINCT ',' + QUOTENAME(FieldName)
FROM CORE_Items_Extra
WHERE Not(FieldName = '')
ORDER BY 1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'),1,1,'')
SET @sql = 'SELECT ItemID, ' + @cols + '
FROM
(
SELECT ItemID, FieldValue, FieldName
FROM CORE_Items_Extra
) AS SourceTable
PIVOT
(
MAX(FieldValue) FOR FieldName IN (' + @cols + ')
) AS PivotTable;'
EXECUTE(@sql)
, который работает отлично, НО Я хочу использовать его в представлении, я попытался скопировать код в представление, но он работает, но не сохраняет, поскольку ему не нравятся заявления Declare в представлении, я работал в хранимой процедуре, но не могу используйте хранимые процедуры в представлении, я думаю, что мне нужно иметь его как значение таблицы d Функция, но не может использовать оператор Execute в TBF. Мне нужно объединить эти данные с другой таблицей в представлении и хотелось бы сохранить ее динамично, поэтому любые идеи были бы очень благодарны :) Мы используем SQL 2008 R2