我需要帮助下面的SQL查询 -
DECLARE
cnt NUMBER;
tempid NUMBER;
mysection VARCHAR2 (200);
BEGIN
tempid := 160645;
mysection := 'Sub-sub section A4';
FOR x IN (SELECT *
FROM table1
where templateID = tempID)
LOOP
SELECT COUNT (*)
INTO cnt
FROM table1
where templateID = tempID;
IF (cnt > 0) THEN
UPDATE table1
SET parentid = parentid - 1
WHERE TO_NUMBER (parentid) > TO_NUMBER (x.parentid) and section = mysection;
UPDATE table1
SET childid = childid - 1
WHERE TO_NUMBER (childid) > TO_NUMBER (x.parentid) and section = mysection;
delete from table1 where tmplateid = tmpid and section = mysection;
END IF;
END LOOP;
COMMIT;
END;
.
/
这是我想要做的。我有一个树格式的数据。为了进一步解释,在屏幕截图中,您可以看到"主要部分" parentId为1,它是主要部分下面部分的子ID,即"子部分"。 "分节"本身的parentID为2,它是以下部分的子ID,"子部分",即子子部分1到子子部分5.
数据表是这样的结构 -
我想要做的是删除" Sub-sub部分A5"并自动调整ParentID序列号和childID列号。我在附加的数据集中提供了示例。