2016-12-02 6 views
0

Ich versuche, eine dynamische Sql Pivot zu erreichen, wo zwei Tabellen zusammengefügt werden und eine Gruppe von Bildern ihre eigene Spalte werden.Dynamische Sql Pivot Join

Tabelle 1:

house_id  name value 
1   image image1.jpg 
1   image image2.jpg 
1   image image3.jpg 

Tabelle 2:

id  updated_at  house_name 
1  2016-12-02  House 1 

Ich mag es so aussehen:

house_id  updated_at house_name image1   image2  image3 
1   2016-12-02 House 1  image1.jpg  image2.jpg image3.jpg 

ich dies durch einen dynamischen SQL-Pivot erreichen will, aber ich kann es nicht zum Funktionieren bringen (sogar ohne die Verbindung):

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) 

Antwort

0

Es gibt keine Möglichkeit Aggregat Betreiber mit image Datentyp zu verwenden, so können Sie PIVOT hier nicht verwenden

+0

Gibt es eine Möglichkeit, dies zu erreichen, ohne einen Dreh mit? – Ellinor

+0

kommt darauf an. Wenn es sich bei der Aufgabe nur um eine einmalige Operation handelt, bei der Daten migriert werden, habe ich versucht, eine neue Tabelle zu erstellen und sie dann Zeile für Zeile mit dem Cursor zu füllen –