I have a table PanelDefn which has list following fields
PanelID FieldID RecordName FieldName LableText Subpanel FieldType PRV1 1 REC1 FLD1 Name 1 PRV1 2 REC1 FLD2 Address 1 PRV1 3 REC1 FLD3 Email 1 PRV1 4 SUB_PRV1 11 PRV1 5 SUB_PRV2 11 SUB_PRV1 1 REC2 FLD1 Address1 1 SUB_PRV1 2 REC2 FLD2 Address2 1 SUB_PRV1 3 REC2 FLD3 City 1 SUB_PRV1 4 REC2 FLD4 Postal 2 SUB_PRV2 1 REC3 FLD1 EmailTYpe 1 SUB_PRV2 2 REC3 FLD2 PrimaryFlag 1
I would like to write a query which recursively gives the data for SubPanel when I query for Panel. It means whenever we encounter FieldType=11 , we need to have recursive query for that. I tried using connect-by.
Advertisement
Answer
I guess you need below query –
SELECT * FROM DATA START WITH PanelID = 'PRV1' CONNECT BY PRIOR Subpanel = PanelID
This will recursively generate the records by comparing PanelID and Subpanel and then using START WITH clause will filter out the unnecessary records.