這讓我難住了一點,而且我不是SQL大師,所以請耐心等待。基於對同一表的查詢更新表列
我有一個表,每行可以有一個「父」(形成一個層次結構)。例如「項目1.1」具有「項目1」,因爲它是家長。
ID列正在改變(在本例中,從字母數字到自動遞增數字)。
如何填充新的「ParentId」字段..通過從現有列數據中計算出正確的「父」字段?
我有一個(非常簡化)表如下:
ExampleTable
=============
OldId OldParentId Title NewId NewParentId
-----------------------------------------------------
A Null Item 1 1 Null
B A Item 1.1 2 Null
C A Item 1.2 3 Null
D Null Item 2 4 Null
E D Item 2.1 5 Null
我所試圖做的是填充「NewParentId」領域的基礎上,對現有的表查找。
我的(顯然不工作)僞代碼:
Update ExampleTable
Set NewParentId = (Select Top 1 NewId From ExampleTable WHERE OldId = ???.OldParentId)
我不知道如何引用在選擇查詢「當前行正在更新」。
這是甚至正確的方法來實現這一目標嗎?
噢 - 我們還需要適當地識別和處理「空值」(例如「項目1」和「項目2」沒有父項..所以父項ID值應保留其「空值」)
您需要解釋邏輯;你試圖達到的目標並不明確! – techspider
好吧,我已經添加了更多的細節,使其更清晰 –