2011-10-13 101 views
-1

我有如何从表A中的数据更新为表B中,并在从vertical..example水平的一个问题是SQL服务器代码(UPDATE)

Table A    -----------  Table B 

ID ----- Item  -----------  ID ------Item 

11---  iPhone4  -----------  11 ------iPhone4,iPhone4s,iPhone5 
11---  iPhone4s 
11---  iPhone5 

意味着从3行成为1行。 请帮忙,在这种情况下确实是noob .. 谢谢

+1

适当调整你的代码和表结构 – rahularyansharma

+1

你为什么要这么做?你应该阅读[数据库规范化](http://www.dbnormalization.com/)。另外,当3种不同的产品具有相同的ID时,它有点违背了目的。 –

+0

你想'Item'为一列还是你想要3'Item'列? – Filburt

回答

0

试试这个..使用GROUP_CONCAT在一行中合并你想合并的行。

SELECT ID,GROUP_CONCAT(item) 
    FROM yourtable 
GROUP BY ID; 
1

尝试用这个..

Select ID,   
Left(Item,Len(Item)-1) As Items 
From(
    Select distinct T2.ID, 
    (Select 
    T1.Item + ',' AS [text()]    
    From TableA T1       
    where T1.ID = T2.ID 
    For XML PATH ('')) [item]  
    From dbo.TableA T2 
    ) t