3

我有一个类似的 oracle 表

表名:注

NoteID(PK)        NoteText    ParentNoteID
1                 x           - 
2                 y           1
3                 z           2

在这里,我需要在 notetext 之上执行类似查询,例如 note.note_text like '%z%',它单独提取第三条记录。

我也希望提取它的父记录。即在获得第三条记录后,它通过类似查询匹配我需要通过查看 parentNoteID 来返回。所以第 3 条记录的父记录是 2,2 的父记录是 1。所以结果应该获取所有三个记录。

为了扩展这一点,如果我的 like 查询匹配两个子记录,显然它应该获取两者的所有父记录。

例子:

NoteID(PK)  NoteText    ParentNoteID
1           x           -  
2           y           1
3           z           2
4           a           -
5           b           4
6           z           5

note.note_text like '%z%'应该拉,以上6条记录。

在此先感谢埃斯瓦尔。

4

1 回答 1

6

您将使用连接方式来执行此操作。

例如像

select *
  from tbl1
 start with note_text like '%z%'
 connect by note_id = prior parent_note_id

会做的。

小提琴示例:http ://sqlfiddle.com/#!4/0c6ea/1

于 2013-04-02T13:36:40.483 回答