假设存在 子查询SQL代码 如下:
sql
SELECT CL.OBJECTNO
, PP.PAYDATE
FROM NYBDP.O_SS_CL_LOAN_ACCT_STATIS CL
LEFT JOIN (SELECT AL.PAYDATE
, BC.BUSS_NO
FROM O_CWWS_ACCT_LOAN AL
INNER JOIN NYBDP.O_CWWS_BUSINESS_DUEBILL BD
ON 1=1
LEFT JOIN O_CWWS_BUSINESS_CONTRACT BC
ON 1=1
) PP
ON 1=1
;
若要提取子查询SQL代码中的源表名,可添加 SUB_SELECT 子查询解析配置,如下所示:
sql
__DEF_FUZZY__ Y
__DEF_DEBUG__ N
__DEF_CASE_SENSITIVE__ N
__DEF_LINE_COMMENT__ --
__DEF_LINES_COMMENT__ /* */
__DEF_PATH__ __SELECT__
1 : x1 @ | select
N : x2 @ | __OTH_COL__
e : x3 @ | ,
1 : x4 @ | from
: x5 @ | __TABLE_NAME__
: x5s @ + __SUB_SELECT__
N : x6 @ | __JOIN_TABLE__
__DEF_SUB_PATH__ __OTH_COL__
1 : x1 | __NAME__
: x2 | .
: x3 | __NAME__
__DEF_SUB_PATH__ __TABLE_NAME__
1 : 源表 @ | __NAME__
+ : schema @ | __NAME__
: pp @ | .
: 源表_2 @ | __NAME__
1 : as @ CAN_SKIP | as
: 源表别名 @ CAN_SKIP | __NAME__
__DEF_SUB_PATH__ __SUB_SELECT__
1 : x1 | (
: x2 | __SELECT__
: x3 | )
: x4 @ CAN_SKIP | as
: x5 @ CAN_SKIP | __NAME__
__DEF_SUB_PATH__ __JOIN_TABLE__
1 : x0 @ | join
+ : x1 @ | inner
: x2 @ | join
+ : x5 @ | left
: x6 @ CAN_SKIP | out
: x7 @ | join
+ : x12 @ | right
: x13 @ CAN_SKIP | out
: x14 @ | join
+ : x17 @ | full
: x18 @ CAN_SKIP | out
: x19 @ | join
+ : x20 @ | ,
1 : x21 @ | __TABLE_NAME__
: x2s @ + __SUB_SELECT__
: x22 @ | on
: x23 @ | 1=1
__DEF_STR__ __NAME__
<1,100>
[1,1]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_??
[0,100]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_??
[NO] select inner left join on from where group order by having union all with as table
根据语法配置解析结果(导入Excel)如下所示:

根据以上语法标注"源表"可以提取到SQL子查询中的源表名。