2016-12-02 5 views
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) 

ответ

0

Там нет никакого способа использовать агрегатные операторы с image типом данных, так что вы не можете использовать PIVOT здесь

+0

Есть ли способ сделать это без использования шарнира? – Ellinor

+0

все зависит. Если задача - это всего лишь однократная операция переноса данных, я попытался создать новую таблицу, а затем заполнить ее курсором по строкам –