我有一个包含一列的表格V_GROUP:
V_GROUP
------------------------------
1.1. Название группы 1
1.1.1. Данные подгруппы 1
1.1.2. Данные подгруппы 2
1.1.3. Данные подгруппы 3
1.2. Название группы 2
1.2.1. Данные подгруппы 1 (2)
1.2.2. Данные подгруппы 2 (2)
1.2.3. Данные подгруппы 3 (3)
从此表中,您需要创建一个包含 2 列的视图(V_SUBGROUP, V_GROUP),以便左列具有子组,而右列具有子组,当然,正确的组与子组重合:
V_SUBGROUP V_GROUP
---------------------------------------------------------
1.1.1. Данные подгруппы 1 1.1. Название группы 1
1.1.2. Данные подгруппы 2 1.1. Название группы 1
1.1.3. Данные подгруппы 3 1.1. Название группы 1
1.2.1. Данные подгруппы 1 (2) 1.2. Название группы 2
1.2.2. Данные подгруппы 2 (2) 1.2. Название группы 2
1.2.3. Данные подгруппы 3 (3) 1.2. Название группы 2
正如@Mike在评论中正确指出的那样,在设计阶段有必要将记录划分为组和子组,以表明它们之间的关系。由于这没有发生,并且考虑到帖子层次结构只有两级,所以最简单的方法是使用self-join:
将给出预期的结果:
在db<>fiddle上。
Oracle 的版本略有不同。从解决方案 0xdb 重用 DDL。谢谢你。
小提琴
小提琴