2013-02-24 82 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 

應該工作。