带有连接值的SQL更新列

时间:2013-02-24 00:14:03

标签: sql-server-2008

我正在尝试创建一个sql update语句,它会使下面的当前数据看起来像下面所需的数据。

简单如果父id为0,则ErrorDescriptionWithParent将是该行的errorDescrtiption。

如果父ID不为0,那么带父项的errordescription将是由分隔符分隔的父项的错误描述的连接值 - 以及子项错误描述。

请参阅下面的数据以获取说明。我试图使用coalesce函数,但我能够创建适当的字符串。提前谢谢

当前样本数据

ID   ErrorDescription   ErrorDescriptionWithParent  ParentID
1    XYZ                                            0
2    Operator                                       1

所需的样本数据

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

以下是我对ParentID为0的记录的更新声明。我只需要帮助创建更新statemet以在ParentID不为0时更新ErrorDescriptionWithParent。谢谢

    UPDATE errorcode
set ErrorDescriptionWithParent = ErrorDescription
where parentID = 0

1 个答案:

答案 0 :(得分:1)

类似的东西:

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

应该有用。