1

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

简单地说,如果父 id 为 0,那么 ErrorDescriptionWithParent 将是该行的 errorDescription。

如果父 ID 不为 0,则 errordescriptionwith parent 将是其父错误描述的连接值,由分隔符分隔 - 和子错误描述。

请参阅下面的数据以获取说明。我尝试使用 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
4

1 回答 1

1

就像是:

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

应该管用。

于 2013-02-24T00:53:59.997 回答