这让我难住了一点,而且我不是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
好吧,我已经添加了更多的细节,使其更清晰 –