2013-02-24 83 views
1

我正在尝试创建一个sql更新语句,它将使当前数据看起来像下面所需的数据。具有连接值的SQL更新列

简单如果父ID是0,那么ErrorDescriptionWithParent将是该行的errorDescrtiption。

如果父母ID不是0,那么父母的错误描述将​​是其父母的错误描述的连接值(由分隔符和孩子错误描述分隔)。

请参阅下面的数据以获得举例说明。我试图使用coalesce函数,但是能够创建适当的字符串。在此先感谢

当前样本数据

ID ErrorDescription ErrorDescriptionWithParent ParentID 
1 XYZ           0 
2 Operator          1 

所需数据

ID ErrorDescription ErrorDescriptionWithParent ParentID 
1 XYZ    XYZ       0 
2 Operator   XYZ-Operator     1 

下面是用0 PARENTID我只是需要帮助在记录我的更新语句当ParentID不为0时创建更新statemet以更新ErrorDescriptionWithParent。谢谢

UPDATE errorcode 
set ErrorDescriptionWithParent = ErrorDescription 
where parentID = 0 

回答

1

喜欢的东西:

update e 
set ErrorDescriptionWithParent = isnull(p.ErrorDescription + '-', '') + e.ErrorDescription 
from errorcode e 
    left join errorcode p on e.ParentID = e.ID 

应该工作。