Oracle SQL FieldType 为子页面时的递归查询
Oracle SQL Recursive Query When FieldType is Subpage
我有一个 table PanelDefn,其中包含以下字段的列表
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
我想编写一个查询,当我查询面板时递归地给出子面板的数据。这意味着每当我们遇到 FieldType=11 时,我们需要
递归查询。
我尝试使用 connect-by.
我猜你需要以下查询 -
SELECT *
FROM DATA
START WITH PanelID = 'PRV1'
CONNECT BY PRIOR Subpanel = PanelID
这将通过比较 PanelID 和 Subpanel 递归生成记录,然后使用 START WITH 子句过滤掉不需要的记录。
我有一个 table PanelDefn,其中包含以下字段的列表
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
我想编写一个查询,当我查询面板时递归地给出子面板的数据。这意味着每当我们遇到 FieldType=11 时,我们需要 递归查询。 我尝试使用 connect-by.
我猜你需要以下查询 -
SELECT *
FROM DATA
START WITH PanelID = 'PRV1'
CONNECT BY PRIOR Subpanel = PanelID
这将通过比较 PanelID 和 Subpanel 递归生成记录,然后使用 START WITH 子句过滤掉不需要的记录。