0
Я пытаюсь создать динамический sql-столбец, где две таблицы объединены вместе, а группа изображений становится их собственной колонкой.Dynamic sql pivot join
Таблица 1:
house_id name value
1 image image1.jpg
1 image image2.jpg
1 image image3.jpg
Таблица 2:
id updated_at house_name
1 2016-12-02 House 1
Я хочу, чтобы выглядеть следующим образом:
house_id updated_at house_name image1 image2 image3
1 2016-12-02 House 1 image1.jpg image2.jpg image3.jpg
Я хочу добиться этого с помощью динамического SQL поворота, но я не могу заставить его работать (даже без соединения):
DECLARE @cols AS NVARCHAR(MAX)='';
DECLARE @query AS NVARCHAR(MAX)='';
SELECT @cols = @cols + QUOTENAME(name) + ',' FROM (select distinct name from #table1) as house_meta
select @cols = substring(@cols, 0, len(@cols)) --trim "," at end
set @query =
'SELECT * from
(
select house_id, name, value from #table1
) src
pivot
(
max(value) for name in (' + @cols + ')
) piv'
execute(@query)
Есть ли способ сделать это без использования шарнира? – Ellinor
все зависит. Если задача - это всего лишь однократная операция переноса данных, я попытался создать новую таблицу, а затем заполнить ее курсором по строкам –