CREATE TABLE t1
(
COL1 nvarchar(36),
COL2 nvarchar(36),
ExpectedResult nvarchar(36)
)
INSERT INTO t1 (COL1, COL2, ExpectedResult)
VALUES
('CA4462D3-BD2C-4C80-A50E-586DA28A877A','CA4462D3-BD2C-4C80-A50E-586DA28A877A','CA4462D3-BD2C-4C80-A50E-586DA28A877A'),
('70CA5891-F6D0-40BA-A6FC-2DA8A035F983','CA4462D3-BD2C-4C80-A50E-586DA28A877A','CA4462D3-BD2C-4C80-A50E-586DA28A877A'),
('A3DEBD5A-C8DD-494E-B2CC-97D693677071','70CA5891-F6D0-40BA-A6FC-2DA8A035F983','CA4462D3-BD2C-4C80-A50E-586DA28A877A'),
('CBC648CE-B98C-4831-B6E2-FBF437BD012B','A3DEBD5A-C8DD-494E-B2CC-97D693677071','CA4462D3-BD2C-4C80-A50E-586DA28A877A');
上面是我的表的结构。
我想做的是:
- 从起点 1 开始,将COL2中的 id“A3DEBD6Axxxxxxxx”与其在 COL1 中出现的位置进行匹配(步骤 2)
- 当找到匹配时,检查 COL2 中的相应值并检查 COL1 中是否也出现相应的值。如果有,则继续查找,直到没有匹配到为止。
- 从 COL1 (CA4462D3xxxxxxx) 中获取“父”ID,并将其写入该 ID 所涉及的每一行的“预期结果”列中。
我在桌子上尝试了一些自连接,但与预期结果相去甚远。知道如何实现这一点吗?