2013-09-25 6 views
0

У меня есть проблема: У меня есть две таблицыс разделителями-colums в SQL Server

Table1, который имеет две колонки

Col1 Col2 
---- ------ 
a  value1 
b  value1 
b  value1 

И Table2

Col1 Col2 
---- ------ 
1  a,b 
2  a,c 
3  a,b,c 

Я хочу привести

Col1 Col2 
----- ----- 
a  1,2,3 
b  1,3 
c  2,3 

Пожалуйста, помогите

Благодарности

+0

Hm это не представляется возможным, потому что вы не иметь поле для объединения таблиц. У вас должен быть какой-то ключ, чтобы присоединиться к ним. – bksi

+1

Какова таблица 1, относящаяся к вопросу? Похоже, что все данные в желаемом результате содержатся в таблице 2 –

ответ

0

Попробуйте это:

ПРИМЕЧАНИЕ: Не тестировался

select col1, [col2], 
(select col1+',' from Table2 where Col2=ID 
group by col1 for xml path('')) AS Col2 
From Table1 
1
WITH C AS 
(
    SELECT T2.Col1, 
     S.Item 
    FROM Table2 AS T2 
    CROSS APPLY dbo.SplitStrings(T2.Col2, ',') AS S 
) 
SELECT C1.Item AS Col1, 
     (
     SELECT ','+CAST(C2.Col1 AS VARCHAR(10)) 
     FROM C AS C2 
     WHERE C1.Item = C2.Item 
     ORDER BY C2.Col1 
     FOR XML PATH(''), TYPE 
     ).value('substring(text()[1], 2)', 'VARCHAR(MAX)') AS Col2 
FROM C AS C1 
GROUP BY C1.Item 

SQL Fiddle

+0

Спасибо за помощь –

Смежные вопросы